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 解释器检查具有名称的函数是否在解释前编译的字节码中定义。
好吧,在解析 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 解释器检查具有名称的函数是否在解释前编译的字节码中定义。