1. 程式人生 > >面向物件構造方法

面向物件構造方法

構造方法

構造方法:__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寫法為輸出