欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php函数中局部变量和全局变量的区别

程序员文章站 2022-03-20 11:27:37
...
在程式内定义的变量称为局部变量,只在程式内部使用,随程式结束而消失。定义在程式外部的变量就叫全局变量,可以被程式呼叫,但不会随程式结束而消失。前面的章节分别介绍了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 变量的,朋友们可以仔细对比一下。

【相关教程推荐】

1. 《php.cn独孤九贱(4)-php视频教程

2. php编程从入门到精通全套视频教程

3. php实战视频教程

以上就是php函数中局部变量和全局变量的区别的详细内容,更多请关注其它相关文章!