首页> 基础笔记 >PHP基础学习 >基础语法 基础语法

PHP变量的范围

作者:小萝卜 2019-08-13 浏览 927

简介PHP的局部变量、全局变量、静态变量

变量的范围

当主程序调用函数时,PHP 会暂时停止目前主要程序流程的运行,并传递必要的运算参数给目标函数使用,以执行函数的程序码片段。

在函数执行结束后,函数会回传执行结果所得的数值,并将执行流程转回原本主程序中断的地方,继续执行运作。

变量的能见度

所谓变量的能见度,意指变量在程序中的可作用范围。当一个变量执行赋值动作后,会随着声明局部的差异,而有不同的作用范围。大致上来说变量会依据声明的局部分为下列两种:局部变量全局变量

4.1 局部变量(内部变量)

在函数之中声明的变量就是局部变量,并且该变量只有在函数范围之中才能加以使用。如果其它程序局部需要调用使用该变量值时,必须透过「return」指令,来将其传回至主程序区块以作后续处理。

$name="zhangsan";

function fun(){
    global $name; //声明一下要使用全局变量name
    echo "函数内输出变量: ".$name."< br/>";
    $name="lisi"; //修改
}

echo "函数外输出变量: ".$name."< br/>";
//调用函数
fun();

echo "调用函数后输出变量: ".$name."< br/>";

4.2 全局变量 

在函数范围之外所声明的变量就是全局变量。由于函数可以视为单独的程序片段,所以局部变量会复盖全局变量的能见度,因此在函数中并无法直接调用使用全局变量。

函数中若要使用全局变量时,必须要利用global关键字定义目标变量,以告诉函数主体此变量为全局。

也可以使用预定义的全局变量数组$GLOBALS.这是一个特殊变量在程序运行时自动创建。格式:echo $GLOBALS[“A”];
$A=“Hello !!”;         //定义全局变量
function print_A() {     //定义函数 print_A()		
	global $A;            //利用 global 关键字声明变量 A 为全局变量
	echo $A;
}
print_A();

在函数中声明全局变量时,其名字要与全局变量一致

通过unset($var)可以手动删除变量,变量会在内存中被释放,也就不在全局作用域中了。

使用require与include包含不会影响作用域

通过参数列表传递给函数的变量,对于函数来说是局部变量,除非在传递时带有&引用符号

4.3 静态变量

    PHP支持声明函数变量为静态的(static)。一个静态变量在所有对该函数的调用之间共享,并且仅在脚本的执行期间函数第一次被调用时被初始化。要声明函数变量为静态的用关键字static。通常,静态变量的第一次使用时赋予一个初始值。

//静态变量:就是在函数内使用static关键字修饰的变量。
//特点:连续多次调用此函数,静态变量依然有效,而且初始语句只执行一次
function fun(){
    static $i=0; //初始语句只执行一次
    $i++;
    echo $i."< /br>";
}

fun();
fun();
fun();
fun();

 

 

 

很赞哦! (0)

文章评论

    高端网站建设