php实践,static静态变量如何作为函数多次调用的共享变量?
发布于 作者:苏南大叔 来源:程序如此灵动~

本文探讨php
中static
变量的一种比较特殊的用法。一般来说,static
是用在类的属性上的。static
关键字把普通属性变成静态的属性。那么,本文中,目标用法并不是这样的,而是使用在函数里面的。

苏南大叔的“程序如此灵动博客”,记录苏南大叔的编程经验总结。本文测试环境:win10
,nginx@1.15.11
,php@8.2.10-nts
。
类静态属性【常见】
static
静态变量一般都是用在class
类里面的。比如:
输出:
函数静态变量
输出:

方法静态变量【本文主体】
这个代码就是结合上述两种情况了。从使用的效果上来看,给一个普通变量加上static
属性后,效果上就类似一个特殊的全局变量,可以在同名函数的多次调用中,共享使用这个变量。第二次调用相同函数的时候,静态变量居然不会被再次初始化,而是使用上一次函数调用后的值。效果上是有些小神奇。
输出:
调用方式总结
名称 | 定义方法 | 调用方法 |
---|---|---|
类常量 | const ATTR | SN::ATTR、$sn::ATTR |
类变量 | public $attr | $sn->attr |
类静态变量 | public static $attr | SN::$attr、$sn::$attr |
类方法 | public function test() | $sn->test() |
类静态方法 | public static function test() | SN::test()、$sn::test()、$sn->test() |
测试代码:
输出:
相关文章
- https://newsn.net/say/php-static-method.html
- https://newsn.net/say/php-debug-func.html
- https://newsn.net/say/php-reflect-class.html
结束语
本文仅仅就是普通涉及静态变量的一些使用,更多苏南大叔的php
经验文章,请点击:


