PHP如何解析函数

时间:2016-01-07 07:53:52

标签: php php-internals

在解析PHP文件时,我对PHP的行为感到困惑。我一直在读这个

  

解释PHP语言

所以我有代码

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

var_dump应根据我的假设打印false,但会打印bool(true)

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

2 个答案:

答案 0 :(得分:2)

请参阅this answer

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

答案 1 :(得分:0)

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