Вызов методов php со строками - PullRequest
7 голосов
/ 15 октября 2010

У меня есть два объекта. Объект А и Б.

A имеет метод, который возвращает B. И я хочу вызвать его динамически, поэтому я использую строку для вызова метода внутри B, например:

$method = 'getB()->someMethod';

Но если сделать это:

$a = new A();
$a->$method();

Это не работает. Есть идеи?

1 Ответ

18 голосов
/ 15 октября 2010

Вы не можете так делать. $method может содержать только имя метода A. Читайте о переменных функций . Вы можете использовать переменные, например,

$method1 = 'getB';
$method2 = 'someMethod';

$a->$method1()->$method2();

Но, вероятно, было бы лучше переосмыслить проблему, рассмотреть другую структуру вашего кода и / или взглянуть на шаблоны проектирования.

Вопрос: какова ваша конечная цель?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...