语言结构不能通过变量函数调用的意思是什么?

3
3个回答

5

echo()isset()(只是为了挑选其他PHP语言结构的例子)不能在变量函数中调用。

下面是一个变量函数的示例。

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()不是一个函数,而是一种语言结构。

3
任何PHP中的函数,无论是内置函数还是自定义函数,都将存储在PHP内部的HashTable中。
当您调用一个函数时,它会通过函数名称在HashTable中查找该函数。
但是,echo()和isset()不是函数,因此它们不存在于函数HashTable中。因此,“语言构造如echo()和isset()不能通过变量函数调用”。

1
它的意思是你不能这样做:

它意味着你不能这样做:

$f = 'echo';
$f('hello world');

因为echo不是一个函数(例如sprintf),而是一个语言符号(例如if


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接