在PHP中将变量传递给方法名

在PHP中将变量传递给方法名,php,variables,methods,call,Php,Variables,Methods,Call,我尝试调用方法,其中我希望在变量中包含名称的一部分。我该怎么做,因为我现在拥有的代码不起作用 $actionName = 'Index'; // object creating... $action = 'action' . $actionName(); $object->$action; 错误: Fatal error: Call to undefined function index() in ... 您不能以这种方式调用PHP方法。你需要用它来做 例如: call_user_f

我尝试调用方法,其中我希望在变量中包含名称的一部分。我该怎么做,因为我现在拥有的代码不起作用

$actionName = 'Index';

// object creating...
$action = 'action' . $actionName();
$object->$action;
错误:

Fatal error: Call to undefined function index() in ...

您不能以这种方式调用PHP方法。你需要用它来做

例如:

call_user_func([$object, 'action' . $actionName]/*,$param1, $param2, $param3*/)
//             ^ Callable                       ^ Optional parameters
class test { function sts() { return "hey"; } }
$tst = new test;
$met = "sts";
echo $tst->$met();
您需要将()添加到变量方法调用中

$actionName = 'Index';

$object->{"action" . $actionName}();
// or
$action = 'action' . $actionName;
$object->$action();
例如:

call_user_func([$object, 'action' . $actionName]/*,$param1, $param2, $param3*/)
//             ^ Callable                       ^ Optional parameters
class test { function sts() { return "hey"; } }
$tst = new test;
$met = "sts";
echo $tst->$met();