php static的三种使用方法

舞夢輝影
发布: 2025-12-01 20:53:02
原创
275人浏览过
static关键字在PHP中有三种用途:1. 静态属性属于类本身,所有实例共享,通过self::或类名访问,可用于对象计数;2. 静态方法无需实例化即可调用,只能访问静态成员,适合工具函数;3. 函数内的静态变量在多次调用间保持值,用于缓存或计数,作用域仍限函数内。

php static的三种使用方法

在 PHP 中,static 关键字有多种用途,主要涉及类的结构和变量作用域。它并不只是“静态方法”这么简单。以下是 static 的三种常见使用方式,每种都有其特定场景和行为特点。

1. 静态属性(Static Properties)

静态属性属于类本身,而不是类的某个实例。这意味着所有该类的对象共享同一个静态属性值。

通过 self::类名:: 访问静态属性,不能用 $this->

  • 用于存储类级别的数据,比如对象计数、配置信息等。
  • 即使没有创建对象实例,也可以访问静态属性。

示例:

启科网络PHP商城系统
启科网络PHP商城系统

启科网络商城系统由启科网络技术开发团队完全自主开发,使用国内最流行高效的PHP程序语言,并用小巧的MySql作为数据库服务器,并且使用Smarty引擎来分离网站程序与前端设计代码,让建立的网站可以自由制作个性化的页面。 系统使用标签作为数据调用格式,网站前台开发人员只要简单学习系统标签功能和使用方法,将标签设置在制作的HTML模板中进行对网站数据、内容、信息等的调用,即可建设出美观、个性的网站。

启科网络PHP商城系统 0
查看详情 启科网络PHP商城系统

立即学习PHP免费学习笔记(深入)”;

class Counter {
    public static $count = 0;

    public function __construct() {
        self::$count++;
    }
}

echo Counter::$count; // 输出: 0
new Counter();
new Counter();
echo Counter::$count; // 输出: 2
登录后复制

2. 静态方法(Static Methods)

静态方法可以直接通过类名调用,无需实例化对象。它们通常用于工具函数或工厂方法。

静态方法内部只能访问静态属性和其他静态方法,不能使用 $this

  • 适合封装不依赖对象状态的功能。
  • 可被继承,但不能被覆盖(除非重新定义)。

示例:

立即学习PHP免费学习笔记(深入)”;

class MathUtils {
    public static function add($a, $b) {
        return $a + $b;
    }
}

echo MathUtils::add(3, 5); // 输出: 8
登录后复制

3. 静态变量(Static Variables) in Functions

这个用法出现在函数内部,不是类相关。static 变量在函数执行结束后不会销毁,下次调用时保留上次的值。

这种特性常用于缓存结果或记录调用次数。

  • 只初始化一次,后续调用沿用已有值。
  • 作用域仍局限在函数内,外部无法访问。

示例:

立即学习PHP免费学习笔记(深入)”;

function sayHello() {
    static $called = 0;
    $called++;
    echo "Hello called $called times.\n";
}

sayHello(); // 输出: Hello called 1 times.
sayHello(); // 输出: Hello called 2 times.
sayHello(); // 输出: Hello called 3 times.
登录后复制

基本上就这些。理解这三种 static 的使用方式,能帮助你在不同场景下更合理地组织代码逻辑。虽然写法相似,但语义和作用完全不同,注意区分上下文。不复杂但容易忽略细节。

以上就是php static的三种使用方法的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号