我对此代码的工作原理感到困惑:
<?php
echo fix_names("William" , "henry", "gatES");
function fix_names($n1, $n2, $n3){
$n1 = ucfirst(strtolower($n1));
$n2 = ucfirst(strtolower($n2));
$n3 = ucfirst(strtolower($n3));
return $n1 . " " . $n2 . " " . $n3;
}
?>
我认为编译器会遍历每一行,但上面的代码使得代码需要首先编译函数,然后返回并处理echo语句。 echo函数不应该在函数之后出现吗?
答案 0 :(得分:1)
我认为编译器会遍历每一行,
这对发生的事情过于简单化。
为了执行你的代码,语句通常从上到下按顺序运行,但正如你所见,函数和类定义的引入使这种天真的描述有缺陷。
在程序代码开始执行之前,定义在某种程度上被解释;因此,它们应该可用 - 范围允许的规则 - 即使是在它们上面找到的程序代码中。
在引用函数之前不需要定义函数,除非有条件地定义函数,如下面两个示例所示。
进一步的分析需要深入解释如何解释,编译和执行PHP,并且超出了本网站的范围。