为什么以下代码会产生“警告: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");
为什么以下代码会产生“警告: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");
我的猜测是因为 thefunc_get_arg
指的是assert
调用,而不是func
.
使用它的演示var_dump
:http ://codepad.org/37uDiSDy
根据PHP 的断言页面上的这个有见地的评论:
注意 func_get_args() 应该小心使用 [in assert] 而不是字符串!...这是因为传递给 assert() 的字符串正在断言内部进行评估,而不是您的函数。