php物件導向編程(一),php物件導向編程(_PHP教程

來源:互聯網
上載者:User

php物件導向編程(一),php物件導向編程(


類與對象關係:

類就像一個人類的群體 我們從類中執行個體化一個對象 就像是制定一個人。

物件導向程式的單位就是對象,但對象又是通過類的執行個體化出來的,所以我們首先要做的就是如何來聲明類, 做出來一個類很容易。

類的格式

class 類名 { }

類可以理解為一個人的群體,如果我們要把這個人介紹給別人 那麼

首先, 你會介紹這個人姓名、性別、年齡、身高、體重、電話、家庭住址等等。

然後,你要介紹這個人能做什麼, 可以開車, 會說英語, 可以使用電腦等等。

從定義的角度可以分為:

1.靜態描述 如:人的姓名、性別、年齡、身高、體重、電話、家庭住址等等 我們將靜態描述稱為成員屬性

    我們可以用var 來定義 如 var $description ;此時我們應該注意的是聲明沒有必要賦值 ,如人的名字叫小明 有可能在這個人群中找到幾十個小明

2.動態描述 如:這個人可以開車, 會說英語, 可以使用電腦等等 我們將動態描述稱為成員方法

class 人{成員屬性:姓名、性別、年齡、身高、體重、電話、家庭住址成員方法:可以開車, 會說英語, 可以使用電腦}
phpclass Person{    // 下面是人的成員屬性    var $name;    //人的名子    var $sex;    //人的性別    var $age;    //人的年齡    // 下面是人的成員方法    function say() // 這個人可以說話的方法    {         echo "這個人在說話";    }     function run() // 這個人可以走路的方法    {        echo "這個人在走路";    }}?>

當定義好一個類後 我們需要執行個體化那個類才能使用

用new的關鍵詞 $對象名稱 = new  類名稱();


  現在我們樣本化類已經好了我們就要去學會如何使用類中的成員

對象->屬性 $p1->name; $p2->age; $p3->sex;

對象->方法 $p1->say(); $p2->run()

name = "張三";$p1->sex = "男";$p1->age = 20;// 下面三行是訪問$p1對象的屬性echo "p1對象的名子是:" . $p1->name;echo "p1對象的性別是:" . $p1->sex;echo "p1對象的年齡是:" . $p1->age;// 下面兩行訪問$p1對象中的方法$p1->say();$p1->run();// 下面三行是給$p2對象屬性賦值$p2->name = "李四";$p2->sex = "女";$p2->age = 30;// 下面三行是訪問$p2對象的屬性echo "p2對象的名子是:" . $p2->name;echo "p2對象的性別是:" . $p2->sex;echo "p2對象的年齡是:" . $p2->age;// 下面兩行訪問$p2對象中的方法$p2->say();$p2->run();// 下面三行是給$p3對象屬性賦值$p3->name="王五";$p3->sex="男";$p3->age=40;// 下面三行是訪問$p3對象的屬性echo "p3對象的名子是:" . $p3->name;echo "p3對象的性別是:" . $p3->sex;echo "p3對象的年齡是:" . $p3->age;// 下面兩行訪問$p3對象中的方法$p3->say();$p3->run();?>

  此時類我們已經基本可以使用了 但是我們發現還是有點不足 就是我們可以在外部進行訪問,但是不能在內部進行訪問 我們引進一個概念“this”的用法 如果可以對內部進行訪問賦值 那麼將減少我們的代碼量

  

name . " 性別:" . $this->sex . " 我的年齡是:" . $this->age;}function run() // 這個人可以走路的方法{echo "這個人在走路";}}$p1 = new Person(); // 建立執行個體對象$p1$p2 = new Person(); // 建立執行個體對象$p2$p3 = new Person(); // 建立執行個體對象$p3// 下面三行是給$p1對象屬性賦值$p1->name = "張三";$p1->sex = "男";$p1->age = 20;// 下面訪問$p1對象中的說話方法$p1->say();// 下面三行是給$p2對象屬性賦值$p2->name = "李四";$p2->sex = "女";$p2->age = 30;// 下面訪問$p2對象中的說話方法$p2->say();// 下面三行是給$p3對象屬性賦值$p3->name = "王五";$p3->sex = "男";$p3->age = 40;// 下面訪問$p3對象中的說話方法$p3->say();?>

  分析一下

function say() // 這個人可以說話的方法 {echo "我的名子叫:" . $this->name . " 性別:" . $this->sex . " 我的年齡是:" . $this->age;}

  上面代碼中$this指的是對其進行賦值的對象。

構造方法__construct()與析構方法__destruct()

構造方法__construct():即自動使用new的方法實現對象的執行個體化(可以理解為為實現能在執行個體化對象的時候傳入參數構建一道橋樑)。理解為一個隊列

  

name賦初使值$this->name = $name;// 通過構造方法傳進來的$sex給成員屬性$this->sex賦初使值$this->sex = $sex;// 通過構造方法傳進來的$age給成員屬性$this->age賦初使值$this->age = $age;}// 這個人的說話方法function say(){echo "我的名子叫:" . $this->name . " 性別:" . $this->sex . " 我的年齡是:" . $this->age;}}// 通過構造方法建立3個對象$p1、p2、$p3,分別傳入三個不同的實參為姓名、性別和年齡$p1 = new Person("張三","男", 20);$p2 = new Person("李四","女", 30);$p3 = new Person("王五","男", 40);// 下面訪問$p1對象中的說話方法$p1->say();// 下面訪問$p2對象中的說話方法$p2->say();// 下面訪問$p3對象中的說話方法$p3->say();?>

 

輸出結果為:

我的名子叫:張三 性別:男 我的年齡是:20我的名子叫:李四 性別:女 我的年齡是:30我的名子叫:王五 性別:男 我的年齡是:40

 

析構方法__destruct():解構函式允許在銷毀一個類之前進行一些列的操作 一個類的解構函式必須是__destruct() 注意的是解構函式不能附帶任何的參數 理解為一個棧

  

name賦初使值$this->name = $name;// 通過構造方法傳進來的$sex給成員屬性$this->sex賦初使值$this->sex = $sex;// 通過構造方法傳進來的$age給成員屬性$this->age賦初使值$this->age = $age;}// 這個人的說話方法function say() {echo "我的名子叫:" . $this->name . " 性別:" . $this->sex . " 我的年齡是:" . $this->age;}// 這是一個解構函式,在對象銷毀前調用function __destruct() {echo "再見" . $this->name;}}// 通過構造方法建立3個對象$p1、p2、$p3,分別傳入三個不同的實參為姓名、性別和年齡$p1 = new Person("張三", "男", 20);$p2 = new Person("李四", "女", 30);$p3 = new Person("王五", "男", 40);// 下面訪問$p1對象中的說話方法$p1->say();// 下面訪問$p2對象中的說話方法$p2->say();// 下面訪問$p3對象中的說話方法$p3->say();?>

  

輸出結果為:

我的名子叫:張三 性別:男 我的年齡是:20我的名子叫:李四 性別:女 我的年齡是:30我的名子叫:王五 性別:男 我的年齡是:40
再見王五
再見李四
再見張三

http://www.bkjia.com/PHPjc/1101503.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1101503.htmlTechArticlephp物件導向編程(一),php物件導向編程( 類與對象關係: 類就像一個人類的群體 我們從類中執行個體化一個對象 就像是制定一個人。 面向對...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.