php多个动态调用

php多个动态调用,php,dynamic,methods,call,Php,Dynamic,Methods,Call,我知道可以像这样动态调用一个方法 $function = 'foo'; $bar = new Bar(); $bar->$function(); 我试图实现的是多个调用,就像我接收到未知数量的方法排序,我必须从一个对象调用它们。例如,我得到了'foo',bar',bro',我必须动态地执行$object->foo()->bar()->bro() 可能吗?我知道call_user_func,但我认为它不能解决这个问题。。。 非常感谢 您可以循环函数并将其应用于每个结果: $arr = ar

我知道可以像这样动态调用一个方法

$function = 'foo';
$bar = new Bar();
$bar->$function();
我试图实现的是多个调用,就像我接收到未知数量的方法排序,我必须从一个对象调用它们。例如,我得到了
'foo',bar',bro'
,我必须动态地执行
$object->foo()->bar()->bro()

可能吗?我知道call_user_func,但我认为它不能解决这个问题。。。
非常感谢

您可以循环函数并将其应用于每个结果:

$arr = array('foo','bar','bro');
$object = getTheObject();
$res = $object;
foreach($arr as $funcName){
    $res = $res->$funcName();
}

然而,这种代码会让人们做噩梦,因为它真的不太清楚到底发生了什么。考虑使用其他方法来做你需要的。

如果你认为你需要这样做的话,你就错了。我正在与Syffy一起工作,并且使用Ajax修改属性。问题是我的实体有子实体,等等,我想要一个通用函数。请参阅我之前的评论。:)如果你有一些对象,比如$main->setName()和$main->getChild()->getFriend()->setHeight(),你会怎么做一个普通函数呢?我不知道。我不知道你想达到什么目的。我知道你正在破坏规则,将来你会因为这样做而憎恨你,其他人也会因为这样做而憎恨你。对不起,问题是我总是在最后有一个集合,比如$foo->getBar()->setBro();我不能让它工作-编辑-我的错,我犯了一个简单的错误。谢谢!