PHP可以用call_user_func调用不存在的函数

时间:2013-02-17 16:24:36

标签: php overloading

这就是我想要做的事情: 我有一个对象

class TestObject {
      public function __call($name,$args){
        if($name == 'somemethod'){
          print "Yesssss!!!!!!";
        }
      }
}

比我在这个方法中调用这样的方法:

$obj = new TestObject()
$obj->somemethod()  // should work according to http://www.php.net/manual/en/language.oop5.overloading.php#object.call
call_user_func(array('myobject','somemethod')) // this does not work!!!

有没有办法让最后一个例子起作用?

2 个答案:

答案 0 :(得分:0)

$obj_name = 'myobject';
$method_name = 'somemethod';
${$obj_name}->${$method->name()};

答案 1 :(得分:0)

您可以使用

call_user_func(array($obj,'somemethod'));

$method = 'somemethod';
$obj->$method();