PHP printf存储和输出

时间:2012-11-05 00:32:11

标签: php printf output

我知道printf用于输出,而sprintf用于存储。

但是在这段代码中:

$str = printf('%.1f', 1.3);
echo $str;

为什么输出1.33?我假设它会输出1.31.3?

1 个答案:

答案 0 :(得分:6)

事实上,PHP中的

printf函数确实有两件事:打印其参数(根据格式字符串,作为第一个发送)并返回此打印字符串的长度。

通常不使用printf返回的值 - 但在这种情况下不会。由于(按格式)printf这里必须打印'1.3'字符串(小数点后只有一位数),其长度为3 - 所以它存储在$str变量中并在下一个语句中打印(echo)。所以整个输出是'1.33'。

作为旁注,这......

$str = print(1.3);
echo $str;

...打印'1.31',因为print也会做两件事 - 打印其参数并返回1.