ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 静态变量 所有的对象都共享一个变量 ![](https://box.kancloud.cn/f03f6af35bc9e37749a031e34d09aced_377x319.png) 1.全局变量 在任何地方都可以使用的变量,叫做全局变量。 global $a; $a=0; 全局变量要先定义,后赋值 ![](https://box.kancloud.cn/f837fb58a06aa858e622810c59d42560_929x303.png) ### 1.定义 修饰符 static 变量名; ### 2.访问 类的外部访问:**类名::变量名** 类内部访问:**self::变量名 或 类名::变量名** 3. 存在方式 静态变量不是在堆区里面,在堆区存储的是该变量的地址 ~~~ <? echo "<meta charset='utf-8'>"; class Child{ public $name; //定义并初始化静态变量 public static $num=0; function __construct($name){ $this->name=$name; } public function join(){ //使用静态变量 self::$num+=1; echo $this->name."加入游戏"; } } $c1=new Child("周迅"); $c1->join(); $c2=new Child("马云"); $c2->join(); echo $c1::$num; ~~~ ![](https://box.kancloud.cn/263d2c4de386124f8cd21b40e2addb9e_947x477.png) ## 静态方法 **在操作静态变量的时候使用静态方法** ### 定义: 修饰符 static function 方法名(){.......} ### 特点: 静态方法中不能访问非静态属性 类外部: 类名::方法名 或 对象名->方法名 类内部: self:方法名 或 类名::方法名 ~~~ <? echo "<meta charset='utf-8'>"; class Child{ public $name; //定义并初始化静态变量 public static $fee=0; public static function counts($ifee){ self::$fee+=$ifee; } } $c2=new Child("马云"); $c1=new Child("马云"); $c1::counts(300); $c2::counts(300); echo Child::$fee; ~~~