学习韶光
比如有一个需求,对付0-9的正整数进行格式化,使其输出 00-09。在 PHP 中该当怎么写呢?
首先肯定是从 C 措辞就继续来的 sprintf 这个格式化函数。
$s = sprintf('%02d', $digit);
个中格式化 02 表示左侧至少是2位整数,多出的部分不管,不足的补零。
既然都是字符串格式化,我们借助 PHP 供应的字符串补全函数 str_pad,也可以达到相同的效果。代码这样写:
echo str_pad($digit, 2, "0", STR_PAD_LEFT);
把稳参数,2是补全的长度,超过的不用补,不足的至少补到2位。“0”是用于补全的字符,STR_PAD_LEFT 常量用于指定左补全。
下面是一些 str_pad 的用法:
$input = "Alien";echo str_pad($input, 10); // 输出"Alien "echo str_pad($input, 10, "-=", STR_PAD_LEFT); // 输出"-=-=-Alien"echo str_pad($input, 10, "_", STR_PAD_BOTH); // 输出"__Alien___"echo str_pad($input, 6 , "___"); // 输出"Alien_"
深入谈论
上面给出的2种补全的办法,哪种效率更高一些呢?我们通过代码进行测试:
上述代码在 PHP 5.3 的基准测试中,结果是这样的:
str_pad : 0.286863088608sprintf : 0.234171152115可以看到,在较为频繁地利用前导处理时,格式化函数 sprintf 所利用的韶光更少,也从侧面证明了这个老牌函数的坚固可用。
写在末了本文通过两个 PHP 函数演示了对付数值的前导补零操作,并且经由测试也创造利用频次较高的 sprintf 函数更胜一筹。
我们也提倡在代码中利用 sprintf 用于格式化,其功能非常可靠。特殊须要把稳的是,格式化元字符对付分外字符的处理一定要慎重。
Happy coding :_)
我是 @程序员小助手 ,持续分享编程知识,欢迎关注。