我是PHP
的新手,正在学习w3schools的PHP
功能。它说“当函数名称在变量中时,PHP允许进行函数调用”
该计划有效
<?php
$v = "var_dump";
$v('foo');
?>
但是这个程序不起作用:
<?php
$v = "echo";
$v('foo');
?>
但如果我做echo('foo');
它就有效。
我做错了什么?
答案 0 :(得分:15)
PHP
的此功能称为 变量功能 。
这里的问题是echo
实际上是一个函数,但语言结构和变量函数只能与函数一起使用。在您的第一个示例中,var_dump
是一个函数,它工作正常。
来自Variable functions的PHP文档:
变量函数不会使用语言结构,例如echo(),print(),unset(),isset(),empty(),include( ),require()等。利用包装函数将这些结构中的任何一个用作变量函数。
您可以使用printf
函数代替echo
:
$e = "printf"; // printf is a function not a language construct.
$e('foo');
或者你可以为echo
写一个包装函数:
$e = "echo_wrapper";
$e('foo');
function echo_wrapper($input) { // wrapper function that uses echo.
echo $input;
}
答案 1 :(得分:1)
echo
不是函数!您可以使用printf
这是一个函数,它可以用来打印出来。
答案 2 :(得分:0)
有两个可能的问题,你应该解决它们:
echo
不是函数,而是PHP语言构造。您需要编写一个包装函数echoes
传递给它的内容。答案 3 :(得分:0)
这有效:
$v = "printf";
$v('foo');