站长网 PHP教程 PHP static:静态变量的特点

PHP static:静态变量的特点

和局部变量相比,静态变量具有一下特点: 当函数执行完毕后,静态变量不会消失; 静态变量只能在函数内部使用; 静态变量只会被初始化一次; 静态变量初始化的值可以省略,默认值为 null; 静态变量的初始值只能是具体的字符串、数值等,而不能是一个表达式

和局部变量相比,静态变量具有一下特点:

当函数执行完毕后,静态变量不会消失;

静态变量只能在函数内部使用;

静态变量只会被初始化一次; 

静态变量初始化的值可以省略,默认值为 null;

静态变量的初始值只能是具体的字符串、数值等,而不能是一个表达式。

注意:在函数外面使用静态变量时并不会报错,这时它的生命周期与作用域和全局变量是一样的;在函数内部定义静态变量时,它的生命周期也和全局变量一样,但是作用域和局部变量的作用域一样的。

静态变量并不是说它的值是不能改变的,不能改变值的那叫常量。 其实静态变量的值是可以改变的,而且它会保持最新的值。之所以称为静态,是因为它不会随着函数的调用和退出而发生变化。即上次调用函数的时候,如果我们给静态变量赋予某个值的话,那么下次函数调用时,这个值是保持不变。

还有一点需要注意的是:静态变量虽然在程序的整个执行过程中始终存在,但是它的作用域和局部变量是一样的,在作用域之外是不能使用的。

说了这么多,那么要怎么定义一个静态变量呢?这是我们就需要用到 static 关键字了,使用方法如下:

static 变量 = 值;  

当同时定义多个静态变量,且使用默认值初始化时,也可以像下面这样:(多个变量之间使用“,”分隔)

static 变量1, 变量2, …

静态变量大多用在,函数需要多次调用且需要共享一份数据时,比如使用递归的方式遍历某个目录。

【示例】定义一个静态变量来记录函数调用的次数,另外再定义一个局部变量与静态变量做对比,具体代码如下:

<?php

function demo(){

static $a;

$b = 0;

$a++;

$b++;

echo '第 '.$a.' 次运行 demo 函数, 局部变量 $b 的值为:'.$b.'<br>';

}

demo();

demo();

demo();

demo();

?>

运行结果如下所示:

第 1 次运行 demo 函数, 局部变量 $b 的值为:1 第 2 次运行 demo 函数, 局部变量 $b 的值为:1 第 3 次运行 demo 函数, 局部变量 $b 的值为:1 第 4 次运行 demo 函数, 局部变量 $b 的值为:1

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/jc/php/2021/0602/8680.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部