学习韶光

比如有一个需求,对付0-9的正整数进行格式化,使其输出 00-09。
在 PHP 中该当怎么写呢?

首先肯定是从 C 措辞就继续来的 sprintf 这个格式化函数

$s = sprintf('%02d', $digit);

个中格式化 02 表示左侧至少是2位整数,多出的部分不管,不足的补零。

php补全03分钟短文  PHP 数值格局化前导0还能这么加 Node.js

既然都是字符串格式化,我们借助 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 :_)

我是 @程序员小助手 ,持续分享编程知识,欢迎关注。