Я пытаюсь вызвать публичную функцию класса с переменными (php7). Поэтому я делаю:
$module = 'frontend\\modules\\rest\\models\\Member';
$action = 'view_profile'
$response = new $module();
$response = $response1->$action;
При вызове $ response1 -> $ action я получаю следующую ошибку:
Undefined property: frontend\modules\rest\models\Member::$view_profile
Я вижу, что системы пытаются вызвать … Member \ $ view_profile, и это не будет работать. Но почему перед $ view_profile стоит «$». Я пробовал несколько вариантов, но ошибка с $ view_profile всегда есть. Что не так с этим подходом?
Проверьте этот другой ответ: ООП в PHP: класс-функция из переменной? (не могу комментировать, извините …)
Во всяком случае, это то, что вы после: http://php.net/manual/en/functions.variable-functions.php
<?php
class Foo
{
function Variable()
{
$name = 'Bar';
$this->$name(); // This calls the Bar() method
}
function Bar()
{
echo "This is Bar";
}
}
$foo = new Foo();
$funcname = "Variable";
$foo->$funcname(); // This calls $foo->Variable()
?>
Так что я думаю, единственное, чего не хватает, это «()» после
$response1->$action;
Других решений пока нет …