1. 程式人生 > >php面向物件(二)-建構函式

php面向物件(二)-建構函式

今日重點:建構函式

建構函式 __construct()

class Human {
    public $name = '李四';
    public $gender = '男';
}
$a = new Human();
$b = new Human();
$c = new Human();

echo $a->name,'<br />';
echo $b->name,'<br />';
echo $c->name,'<br />';

echo $a->gender,'<br />';
echo $b->gender,'<br />'
; echo $c->gender,'<br />';

在上面的例子中, 體現出類是模板,物件根據模板造出的例項.但是,模板是固定的.
因此,導致造出來的物件,各種屬性值都一樣.這顯示與現實生活中的邏輯不符.
比如: 新生兒,性別,姓名,體重,這些都不一樣.
同一個模板,不同的物件 這就是一對矛盾?

為什麼新生兒有的是男,有的是女?
答:因為,染色體不一樣.
x,y ->男
x,x–>女
造物件時,傳x染色體,還是y染色體,都有可能
這就說明建立物件時,可以傳參 -》這就引出來了建構函式的必要了

在類中, 有一個建構函式,,就是用來初始化物件用的.
利用建構函式,你有機會操作物件,並改變他的值

構造方法的作用時機:
每當new一個物件,就會自動新new出來的物件發揮作用

new ClassName($args);

args;,:newClassName():args要與構造方法裡的引數一致.

//建構函式在生成物件的時候執行
class Human {
    public function __construct() {
        echo '紫微星下凡了!';
    }

    public $name = null;
    public $gender = null;
}

$a
= new Human(); // 建構函式的傳參,並影響物件 class Human { public function __construct($name,$gender) { $this->name = $name; $this->gender = $gender; } public $name = null; public $gender = null; } $a = new Human('張飛','男'); $b = new Human('空姐','女'); $c = new Human('孫二孃','女'); $d = new Human(); echo $a->name,'<br />'; // 張飛 echo $b->name,'<br />'; // 空姐 echo $c->name,'<br />'; // 孫二孃