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

PHP我可以用call_user_func调用不存在的函数吗,php,overloading,Php,Overloading,下面是我想做的: 我有一个目标 class TestObject { public function __call($name,$args){ if($name == 'somemethod'){ print "Yesssss!!!!!!"; } } } 而在代码中,我这样调用此方法: $obj = new TestObject() $obj->somemethod() // should work accor

下面是我想做的: 我有一个目标

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!!!
有什么方法可以让最后一个例子起作用吗?

您可以使用

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


您是否尝试过数组$obj,'somemethod';?调用_user_funcarray$obj,'somemethod';-它不会调用不存在的方法。如果不存在,它会调用“\u call”方法。$obj->$method;-问题是我不能使用这种类型的呼叫。我需要使用call\u user\u funcHmm,是的,它确实在测试脚本中调用了调用方法。
$method = 'somemethod';
$obj->$method();