2011-02-25 124 views
0

我只是想知道是否忽略sprintf的一个参数会导致任何问题。php-sprintf非常简单的问题

我记不住,但我认为我的网站之一,如果我省略了错误的参数,但我试过它在不同的服务器上,它不会发布任何问题与所有PHP错误通知打开。

只是想仔细检查!

例子:

​​
+0

它会浪费CPU周期,因为sprintf仍然会解析查找格式代码的字符串,但这不会是错误。另一方面,不提供所有格式字符的值将是一个错误。 'sprintf('这是%d十进制');'会失败。 – 2011-02-25 20:38:31

回答

1

如果传递的参数太少就会报错,但太多的罚款。就像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