Как запустить функцию, имя метода которой передается в строке?

Допустим, есть код
class Test {

    public function run() {
        $func = 'testFunc';
    }

     public function testFunc() {
        echo "success";
    }
    
}


Как в методе run запустить метод, название которого содержится в строке?

Пробовал
$func = 'testFunc';
$func();


Это работает, но только если метод объявлен не в классе, просто function testFunc()

Как сделать так, чтобы оно работало с публичными методами?
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
Delgus
@Delgus
Test - класс, так и вызывайте как метод класса
$test = new Test();
$func = 'testFunc';
$test->{$func}();
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dmitriy91
@dmitriy91
Попробуйте так внутри `run`:
$this->{$func}();
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы