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

在 PHP 中,static 关键字有多种用途,主要涉及类的结构和变量作用域。它并不只是“静态方法”这么简单。以下是 static 的三种常见使用方式,每种都有其特定场景和行为特点。
1. 静态属性(Static Properties)
静态属性属于类本身,而不是类的某个实例。这意味着所有该类的对象共享同一个静态属性值。
通过 self:: 或 类名:: 访问静态属性,不能用 $this->。
用于存储类级别的数据,比如对象计数、配置信息等。 即使没有创建对象实例,也可以访问静态属性。
示例:
立即学习“PHP免费学习笔记(深入)”;
class Counter { public static $count = 0; public function __construct() { self::$count++; }}echo Counter::$count; // 输出: 0new 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的三种使用方法的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1339539.html
微信扫一扫
支付宝扫一扫