【发布时间】:2015-04-22 00:15:41
【问题描述】:
我想知道以下是否可能。我们有一个设计为使用链式方法的类。
$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();
任何一个解决方案?
亲切的问候,
彼得
【问题讨论】:
-
当您尝试访问属性之一(型号、品牌或国家/地区)或魔术方法(如果有)时,您似乎得到了 null(或除对象之外的任何其他结果) $CarConnection 类不返回对象。调用 $CarConnection->{$value}->count();是正确的。
-
确保
$CarConnection具有model、brands和countries属性,它们是公开count()方法的对象。错误消息说您正在对不是对象的值调用count()。它可能是NULL或其他东西(数组、字符串、整数等)