PHP静态变量与static用法深度解析
107 浏览量
更新于2024-09-01
收藏 75KB PDF 举报
"PHP中的静态变量及static静态变量使用详解"
在PHP编程中,静态变量(static)和静态类属性(static class properties)是两种非常重要的概念,它们在函数调用和类继承中扮演着关键角色。
静态变量是在函数内部定义的,但与普通局部变量不同,静态变量不会在每次函数调用结束时被销毁。这意味着,当函数再次被调用时,静态变量会保留其上次调用时的值。这种特性使得静态变量在需要在函数间保持状态或计数器等场景下非常有用。以下是一个简单的示例:
```php
function test() {
static $nm = 1;
$nm = $nm * 2;
print $nm . "<br/>";
}
test(); // 输出 2
test(); // 输出 4
test(); // 输出 8
```
在这个例子中,`$nm` 在每次调用 `test()` 函数时都会保留其上一次的值并进行翻倍,而非每次都从1开始计算。
静态类属性则属于类本身,而不是类的任何实例。这意味着所有类的实例共享相同的静态属性值。静态属性的声明使用 `public static` 关键字,并且可以通过类名或 `self::` 作用域限定符来访问:
```php
class NowaMagic {
public static $nm = 1;
public function nmMethod() {
self::$nm += 1;
echo self::$nm . '<br/>';
}
}
$nmInstance1 = new NowaMagic();
$nmInstance1->nmMethod(); // 输出 2
$nmInstance2 = new NowaMagic();
$nmInstance2->nmMethod(); // 输出 3
```
在这个例子中,`NowaMagic` 类的静态属性 `$nm` 被两个不同的实例共享,无论创建多少个实例,它的值都会在所有实例中累加。
静态属性还可以通过 `parent::` 作用域限定符来访问父类的静态属性,这对于类继承场景下的数据共享和方法调用非常有用:
```php
class Article extends NowaMagic {
public function articleMethod() {
return parent::$nm; // 访问父类 NowaMagic 的静态属性
}
}
$articleInstance = new Article();
echo $articleInstance->articleMethod(); // 输出父类 NowaMagic 的静态属性 $nm 的值
```
PHP 中的静态变量和静态类属性都是为了在特定的生命周期内持久化数据,它们在处理函数重复调用时的数据保留以及类之间的共享状态方面提供了便利。理解和熟练运用这些概念将有助于编写更加高效和灵活的代码。
2011-04-23 上传
2009-09-25 上传
2020-12-17 上传
2020-10-20 上传
2020-08-26 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
weixin_38595528
- 粉丝: 6
- 资源: 900
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录