Цепные методы ООП call_user_func_array Переполнение стека

Мне было интересно, возможно ли следующее. У нас есть класс, предназначенный для использования в цепочечных методах.

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

В приведенном выше примере мы считаем модели. Однако хочу сделать это динамически. Так, например:

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

Однако это выдает ошибку: «Вызов функции-члена count () для необъекта в». Хотя я почти уверен, что счет существует, так как работает функция, упомянутая ранее.

Некоторый поиск в Google привел к добавлению скобок {}, но это тоже не работает.

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

Любое решение?

С уважением,

Питер

0

Решение

Я могу определить синтаксическую ошибку в вашем цикле:
Это должно идти —

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

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

}

Кроме того, массив, который вы имеете, не является ассоциативным. Так что вам не нужен ключ $!
Попробуй это:

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]