<?php /* * 類:具有相同或相似屬性的一類事物的概括,它是抽象的。 * 對象:某個類具體的實例。 * 類與對象:類是對象的描述,對象是類的具體事物。 */ // 創建一個類:person class person{ public $name; public $age; // PHP通過名稱_construct來識別構造函數,構造函數是沒有返回值的 public function _construct($name,$age){ $this->name = $name; $this->age = $age; } // 類似於Java的初始化成員屬性方法 public function setName($name1){ $this->name=$name1; } public function getName(){ return $this->name; } public function setAge($age1){ if($age1>0&&$age1<120){ $this->age=$age1; }else{ $this->age = 18; } } public function getAge(){ return $this->age; } // person類的一些行爲 public function eat(){ echo 'eat'; } public function work(){ echo 'working'; } public function sleeping(){ echo 'sleeping'; } // 關於靜態屬性和靜態方法 // 在靜態類方法中不能訪問非靜態屬性(變量)。 // 在類外部 : 類名::類方法名 或者對象名-〉類方法名 // 在類內部: 類名::類方法名 或者 self::類方法名 // 靜態變量只能定義在類中,使該類的所有對象共享該變量,任何一個該類的對象去訪問他時,取到的數值都是一樣的。 public static $num=8; // 靜態方法只能操作靜態變量 public static function print_num(){ return person::$num; } } ?> <?php require_once("./person.php"); $person_one = new person(); $person_one->name = 'me';//爲對象中的name屬性賦值 $person_one->age = '19'; $person_one->eat();//調用方法 $person_three = new person(); $person_three->setName('tom'); $person_three->setAge('14'); echo $person_three->getName(); echo $person_three->getAge(); // 靜態變量的調用 echo person::$num; // 靜態方法的調用 echo person::print_num(); ?>