本文主要和大家分享PHP物件導向的哲學詳解,主要以文字的方式和大家講解,希望能協助到大家。
在學習物件導向前先來回顧下關於面向過程的例子:
/*
面向過程
從地址欄接收 gender性別參數 男/女
類比商城迎賓的行為:
如顧客為男:則招呼“先生好”
如顧客為女:則招呼“女士好”
*/
$g = $_GET['gender'];if($g == '男') { echo '先生好';} else if ($g == '女') { echo '女士好';} else { echo '妖猴!';}echo '<br >';
物件導向的簡單例子:
/*
倒黴的張三
張三是一位普通人,別人早晨向他打招呼,他會說“早上好”。
但是有一天他被車撞了,腦子受了一點傷,
因此,別人早晨向他打招呼時,
他有時會說:“早上好”,但有時會說:“晚上好”,甚至辱罵對方。
*/
/*
從這個例子中我們能看到的相關元素:
張三
張三的智商
張三打招呼
車
車撞人
*/
/*
張三是一個對象
車也是一個對象
張三有智商 —> 屬性[名字]
張三能打招呼 —> 功能/方法[動詞]
車能撞人 —> 功能/方法[動詞]
*/
class Man { public $iq = 100; public function say() { $arr = array('早上好','晚上好','你妹啊'); if($this->iq >= 100) { echo $arr[0]; } else { $i = rand(0,2); echo $arr[$i]; } }}class Car { public function hit($people) { $newiq = rand(50,110); $people->iq = $newiq; }}$lisi = new Man();$QQ = new Car();$lisi->say();echo '<br />'; // 撞擊$QQ->hit($lisi);echo $lisi->iq,'<br >';$lisi->say();echo '<br />'; $lisi->say();echo '<br />'; $lisi->say();echo '<br />';
在學習物件導向前先來回顧下關於面向過程的例子:
/*
面向過程
從地址欄接收 gender性別參數 男/女
類比商城迎賓的行為:
如顧客為男:則招呼“先生好”
如顧客為女:則招呼“女士好”
*/
$g = $_GET['gender'];if($g == '男') { echo '先生好';} else if ($g == '女') { echo '女士好';} else { echo '妖猴!';}echo '<br >';
物件導向的簡單例子:
/*
倒黴的張三
張三是一位普通人,別人早晨向他打招呼,他會說“早上好”。
但是有一天他被車撞了,腦子受了一點傷,
因此,別人早晨向他打招呼時,
他有時會說:“早上好”,但有時會說:“晚上好”,甚至辱罵對方。
*/
/*
從這個例子中我們能看到的相關元素:
張三
張三的智商
張三打招呼
車
車撞人
*/
/*
張三是一個對象
車也是一個對象
張三有智商 —> 屬性[名字]
張三能打招呼 —> 功能/方法[動詞]
車能撞人 —> 功能/方法[動詞]
*/
class Man { public $iq = 100; public function say() { $arr = array('早上好','晚上好','你妹啊'); if($this->iq >= 100) { echo $arr[0]; } else { $i = rand(0,2); echo $arr[$i]; } }}class Car { public function hit($people) { $newiq = rand(50,110); $people->iq = $newiq; }}$lisi = new Man();$QQ = new Car();$lisi->say();echo '<br />'; // 撞擊$QQ->hit($lisi);echo $lisi->iq,'<br >';$lisi->say();echo '<br />'; $lisi->say();echo '<br />'; $lisi->say();echo '<br />';