我尝试在变量中调用我想要的名称部分的方法。我怎么能这样做,因为我现在拥有的代码不起作用?
$actionName = 'Index';
// object creating...
$action = 'action' . $actionName();
$object->$action;
错误:
Fatal error: Call to undefined function index() in ...
答案 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();