为了账号安全,请及时绑定邮箱和手机立即绑定

call_user_func_array 和 __call 创建无限循环

call_user_func_array 和 __call 创建无限循环

PHP
catspeake 2021-06-21 09:12:59
我有一个class A和class B从它继承class A,我想在我运行功能来运行一些检查。class A {  public class __call($name, $params) {     if (method_exists?($this, $name)) {       $result = call_user_func_array([$this, $name], $params);       return $result;     }  }}class B {  private function hello() {    echo "Hello"  }}当我打电话时,我期待着:$b = new B();$b->hello();它将调用__call然后执行private function hello,但它开始无限循环,看起来又call_user_func_array触发__call了。但是如果我hello在class A这是预期的行为吗?我能做些什么来防止这种情况发生吗?
查看完整描述

2 回答

  • 2 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信