@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);

Как сделать правильно в этом случае?
  • Вопрос задан
  • 170 просмотров
Решения вопроса 1
profesor08
@profesor08 Куратор тега PHP
Оба варианта работают, но выдают результат отличный от того, который ты хочешь.
$con = $obj1->{$request->controller}($request->controller);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
11 мая 2024, в 06:09
30000 руб./за проект
11 мая 2024, в 00:19
1000 руб./за проект
10 мая 2024, в 23:51
30000 руб./за проект