Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
了解",;宽度说明符";关于PHP sprintf函数_Php_Printf - Fatal编程技术网

了解",;宽度说明符";关于PHP sprintf函数

了解",;宽度说明符";关于PHP sprintf函数,php,printf,Php,Printf,我刚开始教自己使用PHP编写代码。我正在使用的教程向我提出了以下问题: echo“半径为$x的圆的周长为”.sprintf(“%4.2f”,(2*$x*pi())。“” 除了数字4之外,我已经能够弄清楚这其中的大部分是什么。根据PHP手册,sprintf函数中%符号后的数字是: 一个宽度说明符,表示此转换应产生的字符数(最小值)。 但是,如果$x=1,输出为“6.28”,这显然不是4位数字。无论我把4改成什么数字,输出都保持不变。即使我完全删除4,使其读取“%.2f”,输出仍然保持不变。唯一有影

我刚开始教自己使用PHP编写代码。我正在使用的教程向我提出了以下问题:

echo“半径为$x的圆的周长为”.sprintf(“%4.2f”,(2*$x*pi())。“

除了数字4之外,我已经能够弄清楚这其中的大部分是什么。根据PHP手册,sprintf函数中%符号后的数字是:

一个宽度说明符,表示此转换应产生的字符数(最小值)。

但是,如果$x=1,输出为“6.28”,这显然不是4位数字。无论我把4改成什么数字,输出都保持不变。即使我完全删除4,使其读取“%.2f”,输出仍然保持不变。唯一有影响的是如果我把4改成一个很大的数字,比如100000000。然后,我得到一个错误:

致命错误:允许的内存大小134217728字节已用尽(尝试分配1006632960字节)


那么,4到底意味着什么呢

它所做的与它所说的一模一样,如果您查看页面源代码,就可以看到这一点。HTML布局引擎将所有空格折叠成一个空白标记,这就是为什么如果查看处理后的输出,您将永远看不到它。

啊,我明白了,所以小数点被计算为一个字符,它会创建空格来填充所需的任何其他字符。非常感谢。