PHP的物件導向編程:開發大型PHP項目的方法(三)(轉載)_PHP教程

來源:互聯網
上載者:User
PHP的物件導向編程:開發大型PHP項目的方法(三) 作者:Luis Argerich 譯者:limodou   重載(與覆蓋不同)在PHP中不支援。在OOP中,你可以重載一個方法來實現兩個或重多的方法具有相同 的名字,但是有不同數量或類型的參數(這要看語言)。PHP 是一種鬆散類型的語言,所以通過類型重載不 起作用,然而通過參數的個數不同來重載也不起作用。   有時在OOP中重載建構函式非常好,這樣你可以通過不同的方法建立對象(傳遞不同數量的參數)。在PHP 中實現它的技巧是: -------------------------------------------------------------------------------- $name(); //注意$this->name()一般是錯誤的,但是在這裡$name是一個將被呼叫者法的名字 } function Myclass1($x) { code; } function Myclass2($x,$y) { code; } } ?>--------------------------------------------------------------------------------   通過在類中的額外的處理,使用這個類對使用者是透明的:   $obj1=new Myclass(1); //將調用Myclass1   $obj2=new Myclass(1,2); //將調用Myclass2   有時這個非常好用。 多態   多態是對象的一種能力,它可以在運行時刻根據傳遞的對象參數,決定調用哪一個對象的方法。例如, 如果你有一個figure的類,它定義了一個draw的方法。並且派生了circle和rectangle 類,在衍生類別中你覆 蓋了draw方法,你可能還有一個函數,它希望使用一個參數x,並且可以調用$x->draw() 。如果你有多態性, 調用哪個draw方法就依賴於你傳遞給這個函數的物件類型。   多態性在象PHP這樣的解釋語言(想象一下一個C++編譯器產生這樣的代碼,你應該調用哪一個方法?你 也不知道你擁有的對象是什麼類型的,好,這不是重點)是非常容易和自然的。所以PHP當然支援多態性。 -------------------------------------------------------------------------------- draw(); } $obj=new Circle(3,187); $obj2=new Rectangle(4,5); $board->niceDrawing($obj); //將調用Circle的draw方法 $board->niceDrawing($obj2); //將調用Rectangle的draw方法 ?>-------------------------------------------------------------------------------- 用PHP進行物件導向編程   一些"純化論者(purists)"可能會說PHP不是一個真正的物件導向的語言,這是事實。PHP 是一個混合型 語言,你可以使用OOP,也可以使用傳統的過程化編程。然而,對於大型項目,你可能想/需要在PHP 中使用 純的OOP去聲明類,而且在你的項目只用對象和類。   隨著項目越來越大,使用OOP可能會有協助,OOP代碼很容易維護,容易理解和重用。這些就是軟體工程 的基礎。在基於web的項目中應用這些概念就成為將來網站成功的關鍵。 轉自PHPBuilder.com

http://www.bkjia.com/PHPjc/532299.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/532299.htmlTechArticlePHP的物件導向編程:開發大型PHP項目的方法(三) 作者:Luis Argerich 譯者:limodou 重載(與覆蓋不同)在PHP中不支援。在OOP中,你可以重載一個...

  • 聯繫我們

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