理解PHP sprintf函数中的“宽度说明符”

时间:2017-03-20 00:31:34

标签: php printf

我刚刚开始使用PHP自学代码。我正在使用的教程把它扔给了我:

echo "Circumference of a circle with radius $x is ".sprintf("%4.2f",(2 * $x * pi()))."<br />";

我已经能够弄清楚这是什么,除了数字4.根据PHP手册,sprintf函数中%符号后面的数字是:

a width specifier that says how many characters (minimum) this conversion should result in.

但是,如果$ x = 1,则输出为“6.28”,显然不是4位数。无论我将4改为4,输出都保持不变。即使我完全删除4,使其显示为“%。2f”,输出仍然保持不变。唯一似乎有任何影响的是,如果我将4更改为一个大数字,如1000000000.然后,我收到一个错误:

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 1006632960 bytes)

那4到底意味着什么呢?

1 个答案:

答案 0 :(得分:0)

它完全按照它所说的那样做,因为你可以看到你是否看到了页面源代码。 HTML布局引擎将所有空格折叠成单个空格标记,这就是为什么如果查看已处理的输出,您将永远不会看到它。