我试图理解为什么PHP documentation for variable functions指出:PHP变量函数和语言结构
变量函数不能用于语言结构,例如echo, 打印,取消设置(),isset()函数的工作,空(),包含,要求等等。 利用包装函数将这些结构中的任何一个用作 变量函数。
我尝试了一些这些,他们的工作只是罚款:
function animal() {
return 'Monkey';
}
$animal = 'animal';
echo $animal();
回报Monkey
- 就像人们所期望的。
与print
构造同样的结果 - 然后,我尝试unset()
并且它也可以精绝:
function getIndex() {
return 0;
}
$index = 'getIndex';
$array = array(
'Monkey',
'Gorilla'
);
unset($array[$index()]);
print_r($array);
这将返回Array ([1] => Gorilla)
。
有什么我在这里失踪?只需添加 - 我使用PHP 5.5.14。
你预计会发生什么? – 2014-10-07 09:44:05
尝试'$ function ='echo'; $ function('Hello World');' – 2014-10-07 09:47:16
我想我明白了 - 本来我认为你将无法将这些结构与变量函数结合使用,但我相信它们只是指你不能声明变量的事实例如'echo'($ echoVariable ='echo'),并将其作为函数调用:$ echoVariable()。 – 2014-10-07 09:47:38