为什么这个PHP程序不起作用?

onc*_*ode 5 php function

我是新手PHP,正在学习PHPw3schools的功能.它说"PHP允许在函数名称在变量中时进行函数调用"

这个计划有效

<?php
$v = "var_dump";
$v('foo');
?>
Run Code Online (Sandbox Code Playgroud)

但是这个程序不起作用:

<?php
$v = "echo";
$v('foo');
?>
Run Code Online (Sandbox Code Playgroud)

但如果我这样做的echo('foo');话.

我究竟做错了什么?

cod*_*ict 15

此功能PHP称为变量功能.

这里的问题是echo这是不是一个真正的功能,但一个语言结构变量函数可以用功能的使用.在你的第一个例子var_dump是一个功能,它工作正常.

从PHP doc for Variable函数:

变量函数不适用于语言结构,如echo(),print(),unset(),isset(),empty(),include(),require()等.利用包装函数将这些结构中的任何一个用作可变函数.

您可以使用printf功能代替echo:

$e = "printf"; // printf is a function not a language construct.
$e('foo');
Run Code Online (Sandbox Code Playgroud)

或者你可以写一个包装函数用于echo如下:

$e = "echo_wrapper";
$e('foo');

function echo_wrapper($input) { // wrapper function that uses echo.
        echo $input;
}
Run Code Online (Sandbox Code Playgroud)