標籤:xtend 對象 timezone self 表示 開始 his function 需要
<?phpdate_default_timezone_set("PRC");
/* * 1.靜態屬性用於儲存類的公有資料 * 2.靜態方法裡面只能訪問靜態屬性 * 3.靜態成員不需要執行個體化對象就可以進行訪問 * 4.類的內部可以通過self或者static關鍵字訪問自身靜態成員 * 5.可以通過parent關鍵字訪問父類的靜態成員 * 6.可以通過類的名稱在類定義外部存取靜態成員 * */ class Human{ public $name; protected $height; //只有自身和子類可以訪問 public $weight; private $isHungry = true; //不能被子類訪問
public static $sValue = "Static value in Human class"."\n";
public function eat($food){ echo $this->name."‘s eating "."‘$food"."\n"; }
public function info(){ echo "HUMAN :".$this->name. ";".$this->height.";".$this->isHungry."\n"; } } class Animal{
}
//類的定義以關鍵字class開始,後面是類的名稱,類的命名通常第一個字母大寫,以中括弧開始和結束 //在PHP中用extends關鍵字表示類的繼承,後面跟父類的類名 //PHP中extends後只能跟一個類的類名,這是PHP中的單繼承原則 class NBaplayer extends Human { // public $name = "Jordan"; //定義屬性 // public $height = "198cm"; // public $weight = "98kg"; public $team = "Bull"; public $playernumber = "23";
private $age = "40"; //Private的類成員只能在內部被訪問
//靜態屬性在定義時在存取控制關鍵字後面添加static關鍵字即可 public static $president = "David Stern"; // 靜態方法在定義時在存取控制關鍵字後面添加static關鍵字即可 public static function changePresident($newpresdt){ //在類定義中使用靜態成員時,用self或者static關鍵字後面跟::操作符即可 //注意,在訪問靜態成員屬性時,::後面需要跟$符號 self ::$president = $newpresdt; //使用parent關鍵字訪問父類中的靜態成員 echo parent::$sValue."\n"; }
//建構函式,在對象被執行個體化時自動調用 function __construct($name,$height,$weight,$team,$playernumber) { echo "in NBaplayer constuctor\n"; $this->name = $name; //$this是php裡面的偽變數,表示對象自身,可以通過$->this的方式訪問對象的屬性和方法 $this->height = $height; $this->weight = $weight; $this->team = $team; $this->playernumber = $playernumber; echo $this->height."\n"; }
//解構函式,在程式執行結束時自動調用 //解構函式通常被用於清理程式使用的資源。比如,程式使用了印表機,那麼可以在解構函式裡釋放印表機資源 function __destruct() { echo "Destroying ".$this->name."\n"; }
//定義方法 public function run() { echo "running\n"; }
public function jump() { echo "jumping\n"; }
public function dribble() { echo "dribbling\n"; }
public function shoot() { echo "shooting\n"; }
public function dunk() { echo "dunking\n"; }
public function pass() { echo "passing\n"; } public function getAge(){ echo $this->name."‘s age is ".($this->age - 2)."\n"; } } //類到對象的執行個體化 //類的對象為執行個體化時使用關鍵字new,後面是類的名稱和一堆括弧 // $jordan = new NBaplayer("Jordan","198cm","98kg","Bull","23"); // $james = new NBaplayer("James","203cm","120kg","Heat","6"); //對象中的成員屬性通過->符號來訪問 //在類定義外部存取靜態屬性,可以用類名加::操作符的方法來訪問類的靜態成員 echo NBaplayer::$president." Before change"."\n"; NBaplayer::changePresident("Aadam Siver"); echo NBaplayer::$president."\n"; echo Human::$sValue."\n"; // echo "Jordan : ".$jordan->president."\n"; // echo "James : ".$james->president."\n"; echo $jordan->name."\n"; //echo $jordan->getAge(); // $jordan->info(); // $jordan->eat("Apple"); //在子類中的對象上可以直接存取父類中定義的屬性和方法 //對象中的成員方法通過->符號來訪問 // $jordan->dribble(); // $jordan->dunk(); // $jordan->jump(); // $jordan->pass(); // $jordan->run(); // $jordan->shoot(); // // //每一次用new執行個體化對象的時候,都會用類名後面的參數列表調用建構函式 // $james = new NBaplayer("James","203cm","120kg","Heat","6"); // echo $james->name."\n";
// //通過把變數設定為Null,可以出發解構函式的調用 // //當對象不會再被使用的時候,會觸發解構函式 // $james1 = $james; // $james2 = &$james; // $james2 = null; // $james1 = null; // echo "From now on James will not be used.\n"; ?> |
PHP物件導向編程簡單一實例