0

为什么以下代码会产生“警告: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

4

2 回答 2

2

我的猜测是因为 thefunc_get_arg指的是assert调用,而不是func.

使用它的演示var_dumphttp ://codepad.org/37uDiSDy

于 2013-09-05T14:31:03.723 回答
1

根据PHP 的断言页面上的这个有见地的评论:

注意 func_get_args() 应该小心使用 [in assert] 而不是字符串!...这是因为传递给 assert() 的字符串正在断言内部进行评估,而不是您的函数。

于 2014-02-27T06:12:49.740 回答