Задать вопрос
@kot-samolet

Как сделать динамическое имя метода?

В MyClass2() есть 2 метода: art и give. Так всё работает отлично:
$klein->respond('/run/[:controller]/[:action]', function ($request) {
    $var1 = $request->controller; // кладём имя контроллера в переменную
    $obj1  = new MyClass2();
    $con = $obj1->$var1($request->controller); // подставляем переменную вместо имени контроллера
    $act = $obj1->give($request->action);
});

Но хочется укоротить код и избавиться от переменной $var1 оба варианта не работают:
// Первый
$con = $obj1->request->controller($request->controller);
// Второй
$con = $obj1->$request->controller($request->controller);

Как сделать правильно в этом случае?
  • Вопрос задан
  • 171 просмотр
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
profesor08
@profesor08 Куратор тега PHP
Оба варианта работают, но выдают результат отличный от того, который ты хочешь.
$con = $obj1->{$request->controller}($request->controller);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы