我在动态调用不同的类时发现了php的有趣行为。 由于某种原因,类名称被加扰,它看起来像片段哈希。
这里是我试图执行的PHP代码示例:
call_user_func(array('app_event', 'arrayItems'));
以下是此次活动的回溯:
Array
(
[0] => Array
(
[function] => autoLoader
[class] => init
[type] => ::
[args] => Array
(
[0] => j7ltlqmoy
)
)
[1] => Array
(
[function] => spl_autoload_call
[args] => Array
(
[0] => j7ltlqmoy
)
)
[2] => Array
(
[file] => /site/class.app.php
[line] => 107
[function] => call_user_func
[args] => Array
(
[0] => Array
(
[0] => app_event
[1] => arrayItems
)
)
)
...
);
有人可以解释我做错了什么,以及什么可以导致刺痛 app_event 被翻译成 j7ltlqmoy ?
更新
脚本确实适用于所有其他类,并且只有在未实现请求的方法时才会抛出此奇怪的文本。我已经设法使我的应用程序工作,但它仍然无法解释为什么它会扰乱名称而不是抛出错误?
更新2
当您尝试静态调用方法并且未声明静态属性时,也会发生此事件(在PHP 5.3.10上测试)。它可以通过声明方法static来修复。
更新3
正如我对bug report的评论所述,此问题是由 Zend Guard Loader