为什么以下代码产生“警告: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");
答案 0 :(得分:1)
我的猜测是因为func_get_arg
指的是assert
来电,而不是func
。
使用var_dump
:http://codepad.org/37uDiSDy
答案 1 :(得分:1)
在PHP的页面上以insightful comment为断言:
请注意,func_get_args()应谨慎使用[在assert中],而不要在字符串中使用! ...这是因为传递给assert()的字符串在assert中被唤醒,而不是你的函数。