我正在使用 Apache 2.4 和 PHP 5.4。
我正在执行以下操作:
# retrieve caller name
$calledby = debug_backtrace(); print_r($calledby);
$caller = (strlen($calledby[1]['class'])) ? $calledby[1]['class'] : $calledby[0]['class'];
# arguments are required
if (!func_num_args()) { return; }
# fill variables with argument contents if exists
$variables = (func_num_args() == 0) ? NULL : (is_array(func_get_arg(0)) ? func_get_arg(0) : NULL);
从类的私有方法中。
如果我注释掉 $caller = 和 $variables = 行,那么它可以工作。
如果我将代码更改为以下代码,它也可以工作(按定义)
if (strlen($calledby[1]['class'])) $caller = $calledby[1]['class'];
else $caller = $calledby[0]['class'];
我应该提交错误报告还是我对新的 5.4 语法怪癖做错了什么?
提前致谢!
[更新] 我使用 CLI 执行了文件,脚本产生了预期的结果。