php面向物件(二)-建構函式
阿新 • • 發佈:2019-02-06
今日重點:建構函式
建構函式 __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);
//建構函式在生成物件的時候執行
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 />'; // 孫二孃