PHP如何解析函数

How does PHP parse functions

好吧,在解析 PHP 文件时,我对 PHP 的行为感到困惑。我读这篇文章很久了

The PHP language is interpreted

所以我有代码

var_dump(function_exists('abc')); exit;
function abc() {
    return;
}

var_dump 按照我的假设应该打印 false 但它打印 bool(true).

有人可以帮我理解这种行为吗?

this answer

简而言之,它在运行时被编译成一种字节码,然后被解释——在这样做的过程中,您将拥有可用的函数定义,即使它们出现在最后。

function_exist 将检查已定义函数的列表,包括 built-in(内部)和 user-defined,用于 function_name。因此,php 解释器检查具有名称的函数是否在解释前编译的字节码中定义。