php如何把一个变量作为变量使用?

代码如下:

$action = $request->post('action');
(new Route())->$action($request);

这样写是没有问题,但是我希望能简写一下,像下面这样的,但是代码一直报错:

$action = $request->post('action');
(new Route())->$request->post('action')($request);

想请教一下大神,我这个想法能实现吗?

不要回答用 call_user_func 这种方式,谢谢。

阅读 1.8k
3 个回答

使用大括号包起来,来告诉 PHP 这是一个表达式。

(new Route())->{$request->post('action')}($request);

应该$request前加一个$就行了

$action = $request->post('action');
(new Route())->$$request->post('action')($request);
新手上路,请多包涵

我记得加引用符号可以试试 & 这个

推荐问题