在程式内定义的变量称为局部变量,只在程式内部使用,随程式结束而消失。定义在程式外部的变量就叫全局变量,可以被程式呼叫,但不会随程式结束而消失。前面的章节分别介绍了php函数的自定义函数的局部变量和自定义函数的全局变量。定义一个函数 这个函数里的变量都是局部变量 它们只能在这个函数内部使用 return是这个函数的返回值 调用这个函数就会输出这个值 这个值可以是函数内的变量 也就是局部变量。而全局变量是在函数外部定义的变量,它的作用域从定义处一直到文件结尾。
在php中函数被视为单独的程序片,所以局部变量会覆盖全局变量,即使局部变量中并定义没有全局变量相同的变量,也会被覆盖。
下面通过一个实例来说明它们的区别:
<?php //局部变量测试 $s1= "out s1"; //全局变量 function say(){ $s1 = "in s1"; //局部变量 echo "say():$s1"; } say(); //输出局部变量: in s1 echo "<br/>"; echo "function out:$s1"; ////输出全局变量:out s1 //static变量测试 function count1(){ $num = 0; $num++; echo $num." "; } function count2(){ static $num = 0; $num++; echo $num." "; } for($i=0; $i<10; $i++){ count1(); //11 1 1 1 1 1 1 1 1 1 } echo "<br/>"; for($i=0; $i<10; $i++){ count2(); //1 2 3 4 5 6 7 8 9 10 } echo "<br/>"; //全局变量在函数中运用,加global $a="php"; $b = "java"; function show(){ echo $a; // 无输出 global $b; echo $b; //定义global,输出java } show(); ?>
局部变量和全局变量的区别说明:
1. 局部变量在函数内部可以访问内部变量,输出结果;在函数外部不能访问函数内部的变量,所以无法输出结果;如果在函数外部需要调用该变量值,必须通过 return 指令将其值传回至主程序区块以作后续处理。
2. 在PHP中,由于函数可以视为单独的程序代码片段,所以局部变量会覆盖全局变量的能见度,因此在函数中无法直接调用全局变量。在函数中若要使用全局变量,必须要利用关键字定义目标变量,而这个全局变量的关键字为 “ global ”, 使用关键字“global”你就可以把全局数据导入到一个函数的局部范围内,以告诉函数主体此变量为全局变量。
3. PHP中的变量作用范围的另一个重要特性就是静态变量(static 变量)。静态变量仅在局部函数域中存在且只被初始化一次,当程序执行离开此作用域时,其值不会消失,会使用上次执行的结果。上面的事例中分别使用 static 和不用 static 变量的,朋友们可以仔细对比一下。
【相关教程推荐】
3. php实战视频教程
Atas ialah kandungan terperinci php函数中局部变量和全局变量的区别. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!