PHP中的物件導向和面向過程

2022-04-09 04:29:50 字數 1281 閱讀 7026

本文針對的讀者

本文針對盼看懂得php中有關物件導向與面向過程兩種程式設計方法的讀者,包含新手和老手。假設讀者對php及類的應用有必定程度的熟悉。

簡介

「真正的天才具有準確評價不斷定的,有風險的和牴觸的資訊的才能。--邱吉爾」

應用很多程式語言時,你通常只能應用物件導向或面向過程二者之一的程式設計方法。而在php中,你可以自由選擇或混用。目前盡大多數php程式設計師應用面向過程的方法,由於解析web頁面本身就非常「過程化」(從乙個標籤到另乙個標籤)。在html中嵌進過程處理**是很直接自然的作法,所以php程式設計師通常應用這種方法。

假如你是剛接觸php,用面向過程的作風來書寫**很可能是你唯一的選擇。但是假如你經常上php論壇和訊息組的話,你應當會看到有關「物件」的文章。你也可能看到過如何書寫物件導向的php**的教程。或者你也可能**過一些現成的類庫,並嘗試著往例項化其中的物件和應用類方法--儘管你可能沒有真正懂得這些類為什麼可以工作,或者為什麼需要應用物件導向的方法來實現功效。

應當應用「物件導向」的作風還是「面向過程」的作風?雙方各有支撐者。像「物件是低效的」或「物件非常棒」這樣的議論也時有耳聞。本文不嘗試輕易判定兩種方法的哪種具有盡對的上風,而是要找出每種方法的優毛病。

以下是面向過程作風的**示例:

<?php print 'hello, world.';

?>

以下是物件導向作風的**示例:

<?php class helloworld

} $myhelloworld = new helloworld();

$myhelloworld->myprint();

?>

假如你想懂得一些「物件導向」的基礎知識,請應用google搜尋,網路上有非常多出色的文章。

誰像這樣寫**?

為了懂得為什麼這個論題成為論壇上口水戰的引火線,我們看一些每個陣營的比擬極真個例子。我們看看「過程狂熱」和「物件狂熱」。看看他們的觀點聽起來是不是有點熟悉。

過程狂熱

過程狂熱曾在上課時被盤算機教師批評,由於這種方法沒有應用更加抽象的實現方法。而支撐面向過程者的觀點「它可以工作!」並不能提高其程式設計程度和檔次。畢業後他們可能找到乙個工作,寫驅動程式,檔案系統或其它的偏向底層的程式設計,他們的留心力集中於速度和**的精煉。

「過程狂熱」極真個例子是抵制物件,抵制抽象化。他們總在想著如何讓程式執行起來更快,而不在乎別人是否能讀懂他們的**。他們經常把程式設計當成比賽而不是團隊運動。除了php外,他們最愛好的程式語言是c和彙編。在php世界中他們可能會開發pecl模組,貢獻出高效率的**。 

PHP中的物件導向和面向過程

本文針對的讀者 本文針對盼看懂得php中有關物件導向與面向過程兩種程式設計方法的讀者,包含新手和老手。假設讀者對php及類的應用有必定程度的熟悉。簡介 真正的天才具有準確評價不斷定的,有風險的和牴觸的資訊的才能。邱吉爾 應用很多程式語言時,你通常只能應用物件導向或面向過程二者之一的程式設計方法。而在...

PHP物件導向和面向過程

物件導向,一定要物件導向,沒有物件就沒有老婆,沒有老婆就沒有小孩,沒有小孩就沒有未來 你要不是為了未來,就不用找物件,如果只是簡單的搞搞,可以找馬子 把馬子 釣凱子,都是面向過程的,過程一結束,馬子就不存在了,就好像你每天早上總是乙個人醒來 另外馬子很難公升級 鑑於馬子的不可預計性,她的維護也很困難...

物件導向和面向過程

面向過程就是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候乙個乙個依次呼叫就可以了。物件導向是把構成問題事務分解成各個物件,建立物件的目的不是為了完成乙個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。例如五子棋,面向過程的設計思路就是首先分析問題的步驟 1 開始遊...