链式方法OOP call_user_func_array php

时间:2015-02-20 10:38:35

标签: php oop chained

我想知道以下是否可行。我们有一个使用链式方法设计的类。

$CarClass = $CarConnection->models->count();

在上面的例子中,我们正在计算模型。但是,想要动态地做。例如:

$CountArray = array('models','brands','countries');
foreach($CountArray AS $key => $value){
    $CarData[$value] = $CarConnection->$value->count();       
}

然而,这会输出一个错误:“调用非对象中的成员函数count()”虽然我很确定计数存在,因为前面提到的函数正在工作。

一些谷歌搜索导致添加括号{},但这也不起作用。

 $CarData[$value] = $CarConnection->{$value}->count();    

任何一个解决方案?

亲切的问候,

彼得

1 个答案:

答案 0 :(得分:1)

我可以在循环中发现语法错误: 应该去 -

$CountArray = array('models','brands','countries');

foreach($CountArray as $key => $value){
$CarData[$value] = $CarConnection->$value->count();       

}

而且,你拥有的数组不是关联数组。所以你不需要$ key! 试试这个:

foreach($CountArray as $value) {
 $CarData[$value] = $CarConnection->{$value}->count();
}