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()不能通过变量函数调用”