PHP物件導向的哲學詳解

來源:互聯網
上載者:User

本文主要和大家分享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 />';

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.