PHP中的static理解

本文深入探讨PHP中的静态局部变量和全局变量的特点与使用方法。解释了静态局部变量如何在函数调用间保持状态,并自动初始化为0或空字符。同时介绍了如何通过global关键字在函数内操作全局变量。

PHP里面只有全局作用域和函数作用域,没有块作用域


静态局部变量的初始化表达式必须是一个常量或者常量表达式。即使局部静态变量定义时没有赋初值,系统会自动赋初值0(对数值型变量)或空字符(对字符变量);静态变量的初始值为0。

stattic(静态局部变量):
static类局部变量不会,它不管其所在的函数是否被调用,都会一直存在;不过,尽管该变量还继续存在,但不能在其所在的函数外使用它,只能在某个特定函数中使用,但一直占据存储空间的变量.除非再次调用定义它的函数时,它又可继续使用,而且保存了前次被调用后留下的值。

<?php
function a() {
    //可以不给初值,有默认值
    static $test = 1;//静态变量,它仍然是局部的,在外不能直接访问的。出现在函数内部的基本类型的的静态变量初始化语句只有在第一次调用才执行

    //直接不给初值1是错误的        
    $auto_var = 1;//自动变量赋初值是在函数调用时进行,每调用一次函数重新给一次初值,相当于执行一次赋值语句。

    echo $test;
}
 
a();
echo $test;//这里会报错
echo $auto_var;//也没有
//auto自动变量会随着函数被调用和退出而存在和消失,而static类局部变量不会

global(静态全局变量)

<?php
function a() {
    global $test;//不能写上"static"加以修饰,那样是错误的
    $test = 1;
    echo $test;
}
 
a();
echo $test;
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值