了解",;宽度说明符";关于PHP sprintf函数
我刚开始教自己使用PHP编写代码。我正在使用的教程向我提出了以下问题:了解",;宽度说明符";关于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”,输出仍然保持不变。唯一有影
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布局引擎将所有空格折叠成一个空白标记,这就是为什么如果查看处理后的输出,您将永远看不到它。啊,我明白了,所以小数点被计算为一个字符,它会创建空格来填充所需的任何其他字符。非常感谢。