到于什么是php 面向对象的静态变量,在以前的php 教程中介绍的很多了,大家可以回顾一下。
来看今天的问题,有一群朋友在玩捉迷藏游戏,不时有新的小朋友加入,请问如何知道现在共有多少人在玩?请使用面向对象的思想,编写程序解决。
有二种方法可以解决这个问题:使用全局变量和静态变量。
<?php //有一群朋友在玩捉迷藏游戏,不时有新的小朋友加入, //请问如何知道现在共有多少人在玩? //请使用面向对象的思想,编写程序解决。 /* //1种方法使用全局变量 global $global_nums; //先声明全局变量后再对它进行赋值 $global_nums=0; class Child{ public $name; //构造方法 public function __construct($name){ $this->name=$name; } //定义一个方法统计人数 public function allPlay(){ //先声明使用全局变量 global $global_nums; $global_nums+=1; echo $this->name."加入游戏.<br/>"; } } $p1=new Child("lily"); $p1->allPlay(); $p2=new Child("lucy"); $p2->allPlay(); $p3=new Child("kucy"); $p3->allPlay(); echo $global_nums; //by www.jb200.com */ //第二在类中 使用静态变量 class Child{ public $name; //在类中声明静态变量 public static $allPlay=0; public function __construct($name){ $this->name=$name; } //统计人数 public function addPlay(){ //在类中使用静态变量。在类中有下面2中方式访问静态变量 //self::$静态变量名和类名::$静态变量名 //self::$allPlay+=1; Child::$allPlay+=1; echo $this->name."加入游戏.<br/>"; } } $p1=new Child("lily"); $p1->addPlay(); $p2=new Child("lucy"); $p2->addPlay(); $p3=new Child("kucy"); $p3->addPlay(); $p4=new Child("uucy"); $p4->addPlay(); //在类外只有一种方式访问静态变量:类名::$静态变量名 echo Child::$allPlay; ?>