簡單理解PHP的物件導向程式設計方式

2022-10-06 09:27:12 字數 2025 閱讀 3421

與大多數可以物件導向的程式語言不一樣, php 是同時支援面向過程和物件導向的程式設計方式, php 開發者可以在面向過程和物件導向二者中自由選擇其一或是混合使用,不過由於在 php5 之前的版本中, php 主要還是面向程式設計客棧過程的程式語言,因此大多時候 php 開發者應該還是選擇面向過程的方式進行開發,事實上, kayo 認為即使乙個 php 開發者完全不使用物件導向,他也能開發出很出色的 php 程式,我們可以想象,nvzzmuojh web 頁面的解析本身就很過程化,在 html 中嵌入面向過程處理的**是非常自然的手段,因此不能說物件導向是一種比面向過程更加優秀的程式設計方式,只是另一種程式設計選擇,當然這裡說的是 php 中的情況。

對於 php 中面向過程和物件導向各自的優缺點,相信在網上稍查一下就會很清楚了,面向過程開發周期短,發布快,效率較高,物件導向開發周期長,效率較低但易於維護,改進,擴充套件和開發 api 。顯然易見,我們很難說哪乙個方式會更優秀,與其爭論哪一種程式設計方式更優秀,不如盡量發揮出兩種程式設計方式各自的優勢。

回到 php 的物件導向程式設計,在使用物件導向的過程中還是很容易就感受到它的優勢,最明顯的地方是**功能更加清晰,資料處理,使用者登陸,內容呈現等各寫成乙個類,在頁面中只需包含這些類、例項化物件,然後再用簡潔的語句應用物件就行,這與面向過程中把資料處理,使用者登陸,還有內容等部分寫在一起相比,前者的程式設計思路肯定更加清晰和易於理解,相信團隊開發中應該更為偏向於物件導向程式設計。

下面舉乙個簡單的例子說明一下面向過程和物件導向兩種方式各自的優缺點

在處理表單或接受 url 引數時,為了防止 sql 注入等問題, php 開發者常常需要過濾字串。

在面向過程的方式中,我們會在需要過濾字串的語句中呼叫各種過濾字串的庫函式或自定義函式,這樣下來,頁面中就會出現很多不同的過濾函式甚至還有複雜的正規表示式,即使在頁面中寫了足夠的注釋難免還是比較混亂,下面看看物件導向的處理方式。

首先是定義了乙個簡單的處理字串的類,把各種複雜的字串處理寫成方法(關於 php 物件導向的知識可以 google ,本文不另外敘述。)

<?php /* 字串處理類

* 引數$length用作判斷字串是否超過指定長度

* 轉義 sql 語句中使用的字串中的特殊字元

* 正則限制字串內只能為數字

* 判斷字串是否為空

* 判斷字串長度 */

// 建立字串處理類

class stringfiltration

// 轉義 sql 語句中使用的字串中的特殊字元

function realescapestring($the_string)

// 正則限制字串內只能為數字

function eregnumber($the_strin程式設計客棧g)

// 判斷字串是否為空

function strlenstring($the_string)

// 判斷字串長度

function ifoverstrlenlength($the_string) }

?>

然後在需要過濾字串的頁面中例項化該類

$string = new stringfiltration();

接著在過濾或判斷字串時呼叫類中定義好的方法,於是頁面中會出現一些呼叫方法的語句。

$email = $string->realescapestring($_post['email']);

$postid = $string->eregnumber($id);

在上面的例子中,我們可以看到,在物件導向處理字串之前,我們必須定義乙個類,然後再在需要的頁面中例項化這個類並呼叫這個類中的方法,這裡看來,物件導向的效率相比面向過程是低了,而且也很麻煩,不過這樣的優勢也很明顯,實際處理或判斷字串的語句都寫在類的內部,在呼叫方法的頁面並不會出現各種複雜的自定義函式和諸如正規表示式這樣複雜的語句,頁面的結構乃至整個**的結構更加清晰了,並且在寫好乙個類後,日後進行 php 開發時都可以再使用這個類,從長遠來看效率反而高了。因此一直都在進行 php 面向過程程式設計的開發者不妨換種思路,試試物件導向。

本文標題: 簡單理解php的物件導向程式設計方式

本文位址: /wangluo/php/150537.html

理解PHP 物件導向

這裡不是教程 談談我個人對物件導向的理解 物件導向和面向過程 從時間的緯度來看乙個事件是線性的 面向過程 從個人 物件 來看乙個事件是有多個物件協同而產生的 物件導向 物件導向的好處 解耦 工程化 例項 相當於具體的生物 什麼時候用物件導向?什麼時候用函式?實現乙個功能如果引數多 功能多 封裝成類 ...

物件導向的程式設計 理解物件

理解物件 建立自定義物件的最簡單方式就是建立乙個object的例項,然後再為它新增屬性和方法 1 var person new object 2 person.name nicholas 3 person.age 29 4 person.job software engineer 5 person....

物件導向程式設計的理解

面向著具體的每乙個步驟和過程,把每乙個步驟和過程完成,然後由這些功能方法相互呼叫,完成需求。當需求單一,或者簡單時,我們一步一步去操作沒問題,並且效率也挺高。可隨著需求的更改,功能的增多,發現需要面對每乙個步驟很麻煩了,這時就開始思索,能不能把這些步驟和功能在進行封裝,封裝時根據不同的功能,進行不同...