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