我什么时候会在PHP中使用printf而不是echo?为什么?我只是不明白为什么理解这一点很重要。谢谢!
答案 0 :(得分:11)
它的使用方法与在C中使用的方式相同,将格式化的值替换为格式字符串。
sprintf
manual page上有数百个使用它的例子。
您可以实现一些有用的变量格式(零填充,对齐,宽度等),这需要echo
并伴有多个函数调用。
例如,要将字符串右对齐并将其填充为10个字符,但如果长度超过10个字符则截断:
printf('[%010.10s]', $string);
VS
$tmp = '';
if (strlen($string) > 10)
$tmp = substr($string, 0, 10);
else
$tmp = str_pad($x, 10, '0', STR_PAD_LEFT);
echo $tmp;
您可以轻松地以八进制,十六进制或二进制格式设置数字,而不会通过函数运行它们,将结果存储在临时变量中并将其传递给echo
。 printf
函数族有很多很多用途。
答案 1 :(得分:4)
printf允许您传递参数,以便您可以这样做:
printf("My name is %s and my favorite color is %s", $name, $color);
或者你可以使用echo做同样的事情,但不是那么干净:
echo "My name is $name and my favorite color is $color"
它只是你喜欢哪一个。
答案 2 :(得分:2)
答案 3 :(得分:2)
printf()
允许您以某种方式格式化变量。例如,您可以确定放在%d
中的内容始终显示为数字。您可以在小数点后显示具有一定位数的浮点数。您可以用科学记数法显示数字。您可以将数字转换为八进制/十六进制。
如果您想使用echo执行上述任何操作,则需要在将这些变量放入双引号字符串之前调用某个函数或其他函数。了解如何使用printf()
可以简化您的工作。
当你可以使用sprintf()
获取输出时,它会变得更加强大。