PHP静态变量与static用法深度解析
63 浏览量
更新于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
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析