php物件導向編程,php物件導向_PHP教程

來源:互聯網
上載者:User

php物件導向編程,php物件導向


物件導向編程的基本原則:

  • 單一職責:一個類,只需要做好一件事
  • 開放封閉:一個類,應該是可擴充的,而不是可修改的
  • 依賴倒置:一個類,不應該強依賴另一個類。每個類對應另外一個類都是可替換的
  • 配置化:儘可能地使用配置,而不是寫入程式碼
  • 面向介面編程:只需要關心介面,不需要關心實現

1、設定類的屬性

class ShopProduct {    public $title = 'default product';    public $producterMainName = 'main name';    public $producterFirstName = 'first name';    public $price = 0;}$product1 = new ShopProduct();//設定屬性$product1->title = "My Antonia";$product1->producterFirstName = "Cather";$product1->producterMainName = "Willa";$product1->price = 5.99;//訪問echo 'author: '.$product1->producterFirstName.' '.$product1->producterMainName;

用以上方法設定屬性值會有很多問題:

第一:PHP允許動態設定屬性,如果拼錯或忘記屬性名稱時並不會得到警告。例如錯誤地把

$product1->producterMainName = "Willa";

寫作

$product1->producterSecondName = "Willa";

,當我們輸出作者名字的時候,會有意想不到的結果。

第二:類太過鬆散,我們沒有強制設定標題、價格或者產品名稱,用戶端代碼可以確定的是這些屬性存在,但是面對的可能是預設值也可能不是,理想情況下,我們希望執行個體化ShopProduct對象時設定有意義的屬性值。

第三:不得不重複做一些經常做的事,比如多次需要完整輸出作者的名字,就要重複使用

echo 'author: '.$product1->producterFirstName.' '.$product1->producterMainName;

http://www.bkjia.com/PHPjc/1108855.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1108855.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.