“警告:func_get_arg():参数...没有传递给函数...”

时间:2013-09-05 14:21:44

标签: php parameters variadic-functions

为什么以下代码产生“警告:func_get_arg():参数1未传递给/t.php(6)中的函数:断言第1行的代码”?

function func($param0/*, ...*/)
{
    assert('is_string(func_get_arg(0))'); // ok
    assert('is_string(func_get_arg(1))'); // error
}
func("param0", "param1");

键盘:http://codepad.org/5G9kMWKJ

2 个答案:

答案 0 :(得分:1)

我的猜测是因为func_get_arg指的是assert来电,而不是func

使用var_dumphttp://codepad.org/37uDiSDy

进行演示

答案 1 :(得分:1)

在PHP的页面上以insightful comment为断言:

  

请注意,func_get_args()应谨慎使用[在assert中],而不要在字符串中使用! ...这是因为传递给assert()的字符串在assert中被唤醒,而不是你的函数。