Php 函数只接受6个参数中的2个。Func_num_args返回2
我有个奇怪的问题。基本上我有一个函数,由smarty模板引擎调用,应该接受6个参数。实际上问题是,它只接受2 更奇怪的是,在该函数中调用Php 函数只接受6个参数中的2个。Func_num_args返回2,php,function,arguments,Php,Function,Arguments,我有个奇怪的问题。基本上我有一个函数,由smarty模板引擎调用,应该接受6个参数。实际上问题是,它只接受2 更奇怪的是,在该函数中调用func\u num\u args()也给了我。。。但是看看它 function smarty_modifier_truncate($string, $length = 80, $etc = '...', $break_words = false, $middle = false, $charset = 'UTF-8') { var_dump($break_wo
func\u num\u args()
也给了我。。。但是看看它
function smarty_modifier_truncate($string, $length = 80, $etc = '...', $break_words = false, $middle = false, $charset = 'UTF-8')
{
var_dump($break_words);
var_dump(func_num_args());
if (!$length)
return '';
if (Tools::strlen($string) > $length)
{
$length -= min($length, Tools::strlen($etc));
if (!$break_words && !$middle)
$string = preg_replace('/\s+?(\S+)?$/u', '', Tools::substr($string, 0, $length+1, $charset));
return !$middle ? Tools::substr($string, 0, $length, $charset).$etc : Tools::substr($string, 0, $length/2, $charset).$etc.Tools::substr($string, -$length/2, $length, $charset);
}
else
return $string;
}
这些其他参数是设置好的,因为“中断字”正在被输出,如果我改变它们,效果是显而易见的。真奇怪。有什么解决办法吗
在本地wamp上运行的PHP 5.4.3版func_num_args()
返回调用时实际传递给函数的参数数,而不是接受的参数数。这是不可能的,因为PHP总是接受任意数量的参数
function foo () {
var_dump(func_num_args());
var_dump(func_get_args());
}
foo(1, 'a', null, true);
是的,但实际上函数被传递了5个参数,这就是问题所在