題目:有一群朋友在玩捉迷藏遊戲,不時有新的小朋友加入,請問如何知道現在共有多少人在玩?請使用物件導向的思想,編寫程式解決。
解決這個問題有2中方法:使用全域變數和靜態變數
<?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;*/ //第二在類中 使用靜態變數 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;?>