这里没有问题,但这一直是我的想法,我无法在任何地方找到答案。如果我有一个用函数填充的变量,那么只有在引用该变量时才调用该函数?以下是示例:
function foo(){
$foo = "Foo";
return $foo;
}
$foo = foo();
echo $foo;
在该示例中,我使用$foo
在函数外部引用echo
。如果我不引用该变量,foo()
仍会被调用?
我想这并不重要,我只是想知道。
答案 0 :(得分:4)
创建变量时会调用该函数。
创建变量时,会对其内容进行评估和记忆。
这是我能解释过程的最佳方法:)
答案 1 :(得分:1)
PHP解析完整的源代码,检查语法错误,然后将脚本的标记化形式生成到内存中。然后在执行阶段解释它。令牌的值是字节码/操作码值,表示在处理线程的生命周期内要执行的操作。
$ foo - 在您的示例中,内存中有2个独立的$foo
个变量(不一样),您的$foo
引用了函数和函数范围之外的$foo
。
foo() - 当线程周期命中$foo = foo();
时调用foo函数,foo函数的操作码在脚本初始化时被加载到内存中。