面向物件構造方法
阿新 • • 發佈:2019-01-08
構造方法
構造方法:__construct()
php自帶的類方法,是指在new物件時,自動觸發的方法 就像嬰兒剛出來就會哭,不用叫,也不用呼叫
1 class Human{ 2 public function __construct(){ 3 echo '555555'; 4 }}$baby = new Human();
利用此方法可以完成一些初始化⼯作。
做一些初始化的工作
1 //定義一個人類 2 3 class Person{ 4 public $name; 5 public $age=18; 6 public $sex;7 public function say(){ 8 echo '我是:'.$this->name.'今年:'.$this->age.'歲,我是歐個'.$this- 9 >sex; 10 } 11 //初始化的方法 12 //如果我們的初始化方法裡面給了預設值 那麼定義屬性的預設值沒有意義了 13 public function __construct($name,$age=19,$sex='淫妖'){ 14 $this->name = $name; 15 $this->age = $age; 16 $this->sex = $sex; 17 }18 19 //構造方法的另一種表示方法,方法名跟類名相同,也叫構造方法,是以前的寫法 20 //public function Person($name,$age=19,$sex='淫妖'){ 21 // $this->name = $name; 22 // $this->age = $age; 23 // $this->sex = $sex; 24 //} 25 } 26 $dl = new Person('武大郎'); 27 $dl->say(); 28 echo '<hr/>'; 29 $xm = new Person('西門'); 30 //初始化 31 // $xm ->name = '西門';32 // $xm->age = 20; 33 // $xm->sex = '戰神'; 34 //$xm->init('西門); 35 $xm->say();
如果同時存在兩個構造方法會怎麼樣?
<?php class Person{ public $name; //最新的構方法會有效 public function __construct($name){ $this->name=$name; } //傳統的構造方法 //在使用new關鍵字得到物件的時候自動呼叫 public function Person($name){ $this->name=$name.'###########'; }
}
$p = new Person('jack'); var_dump($p);
如果同時存在新舊兩種構造方法,以最新的construct寫法為輸出