变量在函数内外的作用域 2

function fn() {
	echo "inside the function, $var = ".$var."<br>";
	$var = "content 2";
	echo "inside the function, $var = ".$var."<br>";
}
$var = "content 1";
fn();
echo "outside  the function, $var = ".$var."<br>";

echo "<br><br>";

输出:

inside the function, $var =
inside the function, $var = content 2
outside the function, $var = content 1

 函数在被调用之前是不会执行的,所以第一条执行的语句$var = "content",该语句创建了一个名为$var的变量,它具有全局作用域且值为"content 1",下一条执行的语句是调用函数fn(),函数内部的代码按顺序执行,函数第一行引用了一个名为$var的变量,当这行被执行时,就不能看到前面创建的变量$var了,所以它创建了一个具有函数作用域的新变量并将它显示出来,这就是输出的第一行。
函数内的下一行代码将变量$var的内容设为"content 2"。因为是在函数内部,所以这一行改变了局部$var值,而不是那个全局变量,输出的第二行证实了这个改变。

原文地址:https://www.cnblogs.com/jacson/p/4222677.html