Объединить переменную php в имя метода объекта - PullRequest
0 голосов
/ 14 сентября 2018
  • У меня есть метод getFoo, getBar
  • У меня есть массив [Foo, bar]
  • Я хочу в цикле получить метод динамически

пример:

class Item {
    getFoo();...
    getBar();...
}

$methods = ['Foo','Bar'];

...
foreach($methods as $method){
    $methodName = 'get'.$method.'()';
    $item->{$methodName}; //Notice: Undefined property: Item::$getFoo()
 }

//"Item->$getFoo()"  instead of "Item->getFoo()" probleme is $

1 Ответ

0 голосов
/ 14 сентября 2018
class Item {
    getFoo();...
    getBar();...
}

$methods = ['Foo','Bar'];

...
foreach($methods as $method){
    $methodName = 'get'.$method;//this is the good way
    $item->$methodName();//the bracket make PHP consider this as function call instead of a simple property
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...