$res = $this->$method['name']($parser_name);
Вопрос 1 Столкнулся вот с таким кодом, нормально ли это с точки зрения ООП?
serginhold полностью ответил на этот вопрос. Я знал что код для подстановки метода, но думал зачем так делать, оказывается так делать не нужно
$method = 'getName';
$obj->$method(); // $obj->getName();
$method = 'getTitle';
$obj->$method(); // $obj->getTitle();
Вопрос 2 А есть ли более правильный способ сделать то же самое?
Думаю лучше логику программы переписать, чтобы такие вещи не нужно было юзать вообще, но интересно, если все же нужно как юзать такую "автоподстановку метода" правильно?
Ответ
hack504 мне кажется наиболее правильным с точки зрения ООП, пойду почитаю про рефлексию
$this->{$method['name']}($parser_name);
//можно и через рефлексию:
$reflectionMethod = new ReflectionMethod($this, $method['name']);
$reflectionMethod->invoke($this, $parser_name);