时间:2021-07-01 10:21:17 帮助过:16人阅读
在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 变量的,朋友们可以仔细对比一下。
【相关教程推荐】
1. 《php.cn独孤九贱(4)-php视频教程》
2. php编程从入门到精通全套视频教程
3. php实战视频教程
以上就是php函数中局部变量和全局变量的区别的详细内容,更多请关注Gxl网其它相关文章!