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

代码如下:

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

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

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

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

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

阅读 1.7k
3 个回答

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

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

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题