💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
### 1、下面是全局变量使用: ~~~ <?php //定义,全局变量 global $global_nums; //赋值 $global_nums=0; class Child{ public $name; function __construct($name){ $this->name=$name; } public function join_game(){ global $global_nums; $global_nums+=1; echo $this->name."加入堆雪人游戏<br/>"; } } //创建3个小孩 $child1=new Child("aaa"); $child1->join_game(); $child2=new Child("bbb"); $child2->join_game(); $child3=new Child("ccc"); $child3->join_game(); echo $global_nums; ?> ~~~ 注意:全局变量只能先定义,再进行初始化,不能直接初始化,或初始化和定义写到一起。 2、static 静态变量使用 ~~~ <?php class Child{ public $name; public static $nums=0; function __construct($name){ $this->name=$name; } public function join_game(){ //类内部访问 2中如下 //Child::$nums+=1; self::$nums+=1; echo $this->name."加入堆雪人游戏<br/>"; } } //创建3个小孩 $child1=new Child("aaa"); $child1->join_game(); $child2=new Child("bbb"); $child2->join_game(); $child3=new Child("ccc"); $child3->join_game(); $child4=new Child("ddd"); $child4->join_game(); //外部访问 echo Child::$nums; ?> ~~~ 静态变量只能定义在类中,使该类的所有对象共享的变量,任何一个该类的对象去访问他时,取到的数值都是一样的,同样任何一个该类的变量去修改他时,修改的都是同一个变量。 如何访问静态变量: 在类外部:类名::$类变量名 在类内部:self::$类变量名  或者   类名::$类变量名 具体在内存的分配情况见下图: ![](https://box.kancloud.cn/2016-06-03_5750fd8e34ddc.jpg) ### 下面是简单的实例,加深对上面的理解: ~~~ <?php /* //第一种情况 class Person{ public static $a=90; } echo Person::$a; // 输出不会报错打印:90 */ /* //第二种情况“ class Person{ public static $a=900; public function __construct(){ $this->a=45;//(1) } } echo Person::$a; //不会报错,输出900;(1)写法是错误的,但是因为没有创建对象, //所以不会被调用,也就不会出错~ */ //第三种情况“ class Person{ public static $a=9011; public function __construct(){ $this->a=45;//(1) } } $p1=new Person(); echo Person::$a; //;(1)写法是错误的,但是因为创建了对象,被调用 ?> ~~~