php-sprintf非常简单的问题
问题描述:
我只是想知道是否忽略sprintf的一个参数会导致任何问题。php-sprintf非常简单的问题
我记不住,但我认为我的网站之一,如果我省略了错误的参数,但我试过它在不同的服务器上,它不会发布任何问题与所有PHP错误通知打开。
只是想仔细检查!
例子:
答
如果传递的参数太少就会报错,但太多的罚款。就像PHP的其他部分一样,如果你传递了太多的参数,他们就会被忽略。
$ php -r "echo sprintf('foo %s');"
PHP Warning: printf(): Too few arguments in Command line code on line 1
PHP Stack trace:
PHP 1. {main}() Command line code:0
PHP 2. printf() Command line code:1
Warning: printf(): Too few arguments in Command line code on line 1
Call Stack:
0.0005 314336 1. {main}() Command line code:0
0.0006 314408 2. printf() Command line code:1
$ php -r "printf('foo %s', 'foo', 'bar');"
foo foo
+0
真棒,不记得之前我有什么错误,但太少的参数听起来像是什么。这解决了我的问题,谢谢! – Joe 2011-02-25 20:58:21
它会浪费CPU周期,因为sprintf仍然会解析查找格式代码的字符串,但这不会是错误。另一方面,不提供所有格式字符的值将是一个错误。 'sprintf('这是%d十进制');'会失败。 – 2011-02-25 20:38:31