将变量传递给PHP中的方法名称

时间:2014-11-04 08:37:31

标签: php variables methods call

我尝试在变量中调用我想要的名称部分的方法。我怎么能这样做,因为我现在拥有的代码不起作用?

$actionName = 'Index';

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

错误:

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

2 个答案:

答案 0 :(得分:1)

你不能以这种方式调用PHP方法。您需要使用call_user_func来执行此操作。

示例:

call_user_func([$object, 'action' . $actionName]/*,$param1, $param2, $param3*/)
//             ^ Callable                       ^ Optional parameters

答案 1 :(得分:0)

您需要向变量方法调用添加()。

$actionName = 'Index';

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

示例:

class test { function sts() { return "hey"; } }
$tst = new test;
$met = "sts";
echo $tst->$met();