Php 语言结构不能通过变量函数调用的意义是什么?
可能重复:Php 语言结构不能通过变量函数调用的意义是什么?,php,Php,可能重复: 我在php编程书《代码》中读到,诸如echo()和isset()之类的语言构造不能通过变量函数调用“ 它的含义是什么?echo()和isset()(只是选择那些用于其他PHP语言构造的示例)不能在变量函数中调用 function foo() { echo "foo"; } $func1 = 'foo'; $func1(); // "foo" will be output 下面是一个变量函数的示例 function foo() { echo "foo
我在php编程书《代码》中读到,诸如echo()
和
isset()之类的语言构造不能通过变量函数调用“
它的含义是什么?echo()
和isset()
(只是选择那些用于其他PHP语言构造的示例)不能在变量函数中调用
function foo() {
echo "foo";
}
$func1 = 'foo';
$func1(); // "foo" will be output
下面是一个变量函数的示例
function foo() {
echo "foo";
}
$func1 = 'foo';
$func1(); // "foo" will be output
现在让我们尝试使用echo
:
$func2 = 'echo';
$func2(); // "Fatal error: Call to undefined function echo() on line 10"
这是因为
echo()
不是一个函数,而是一个语言构造。这意味着你不能这样做:
$f = 'echo';
$f('hello world');
因为
echo
不是一个函数(比如sprintf
),而是一个语言符号(比如if
)php中的任何函数,无论是内置函数还是用户函数,都将存储在php内部的哈希表中
调用函数时,它会按函数名在哈希表上查找该函数
但是echo(),isset()不是函数,因此它不存在于函数哈希表中。所以“语言构造,如asecho()和sset()不能通过变量函数调用”