1

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

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!!!

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

4

2 回答 2

0
$obj_name = 'myobject';
$method_name = 'somemethod';
${$obj_name}->${$method->name()};
于 2013-02-17T16:26:17.643 回答
0

您可以使用

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

或者

$method = 'somemethod';
$obj->$method();
于 2013-02-17T16:27:04.330 回答