PHP使用字符串指向一个函数

Ham*_*med 3 php string function

在搜索其他内容时,我发现了这段代码

$x = "foo";
    function foo(){ echo "wtf"; }
$x(); # "wtf"   
Run Code Online (Sandbox Code Playgroud)

当我搜索谷歌这个时,我得到的只有C结果而不是PHP,而我知道在PHP引擎盖下是C,我真的想要一些解释.

这叫什么?

以及它如何被PHP zend解释?它是某种可赎回的吗?

它仍然可以在PHP 7+中使用吗?

Pub*_*ana 5

这在PHP中称为变量函数:http://php.net/manual/en/functions.variable-functions.php

基本上,当在变量之前有变量时(),首先变量得到解析,解释器得到它的值并尝试找到具有该值的函数.如果函数存在,则调用或函数未找到异常将被抛出.

  • 这个答案对细节有点了解.你能否扩展你的答案?目前它看起来更像是评论. (5认同)