首頁 後端開發 php教程 Classes and Objects in PHP5-物件導向程式設計 [1]_PHP教程

Classes and Objects in PHP5-物件導向程式設計 [1]_PHP教程

Jul 21, 2016 pm 04:11 PM
and 作者 物件 程式設計 翻譯 面向


作者:Leon Atkinson 翻譯:Haohappy 物件導向程式設計來為大型軟體專案提供解決方案,尤其是多人合作的專案. 當原始碼成長到一萬行甚至更多的時候,每一個更動都可能導致不希望的副作用. 這種情況發生於模組間結成秘密聯盟的時候,就像第一次世界大戰前的歐洲.

//haohappy注:喻指模組間的關聯度過高,相互依賴性太強.更動一個模組導致其它模組也必須跟著更動.

想像一下,如果有一個用來處理登錄的模組允許一個信用卡處理模組來分享它的數據庫連接. 當然出發點是好的,節省了進行另一個資料庫連接的支出.然而有時,登入處理模組改變了其中一個變數的名字,就可能割斷了兩者間的協議.導致信用卡模組的處理出錯,進而導致處理發票的模組出錯.很快地,體系中所有無關的模組都可能由此出錯.

因此,我覺得有點戲劇性地,絕大多數程式設計師都對耦合和封裝心存感激. 耦合是兩個模組間依賴程度的量度. 耦合越少越好.我們希望能夠從已有的專案中抽走一個模組並在另一個新專案中使用.

我們也希望在某個模組內部大規模的更動而不用擔心對其他模組的影響. 封裝的原則可以提供這個解決方案.模組被看待成相對獨立,並且模組間的數據通信通過接口來進行. 模組不通過彼此的變量名來窺探另一個模組,它們透過函數來禮貌地發送請求.

封裝是你可以在任何程式語言中使用的一個原則. 在PHP和許多面向過程的語言中,可以偷懶是很有誘惑的.沒有什麼可以阻止你透過模組來建構一個假想的WEB. 物件導向程式設計是讓程式設計師不會違背封裝原則的一種方法.


在物件導向程式設計中,模組被組織成一個個物件.這些物件擁有方法與屬性. 從抽象的角度來看,方法是一個物件的所做的動作,而屬性是物件的特性.從程式角度來看,方法就是函數而屬性是變數. 在一個理想化的物件導向體系中,每個部份都是一個物件. 體係由物件及物件間透過方法來形成的連結構成.

一個類別定義了物件的屬性. 如果你在烘烤一組甜餅物件,那麼類將會是甜餅機. 類別的屬性和方法是被呼叫的成員. 人們可以透過說出資料成員或方法成員來表達.


每種語言提供了不同的途徑來存取物件. PHP從C 借用概念,提供一個資料型別用來在一個標識符下包含函數和變數。最初設計PHP的時候,甚至PHP3被開發出時,PHP並不打算提供開發超過10萬行程式碼的大型專案的能力。隨著PHP和Zend引擎的發展,開發大型專案變得有可能,但無論你的專案規模多大,用類別來書寫你的腳本將可以讓程式碼實作重複使用。這是一個好主意,特別當你願意與別人分享你的程式碼的時候。

有關物件的想法是電腦科學上最令人興奮的概念之一。開始很難掌握它,但我可以保證,一旦你掌握了它,用它的思維來思考將會非常自然。

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/314098.htmlTechArticle作者:Leon Atkinson 翻譯:Haohappy物件導向程式設計來為大型軟體專案提供解決方案,尤其是多人合作的專案. 當原始碼成長到一萬行甚至更多...
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

看片不怕沒字幕!小米宣布小愛翻譯即時字幕上線日韓文翻譯 看片不怕沒字幕!小米宣布小愛翻譯即時字幕上線日韓文翻譯 Jul 22, 2024 pm 02:11 PM

7月22日消息,今日,小米澎湃OS官微宣布小愛翻譯迎來升級,實時字幕新增日韓語翻譯,無字幕視頻、直播會議實時轉錄翻譯。面對面同聲傳譯支持12種語言互譯,包括中文、英語、日語、韓語、俄語、葡萄牙語、西班牙語、義大利語、法語、德語、印尼語、印地語。以上功能目前僅支援以下三款新機:小米MIXFold4小米MIXFlipRedmiK70至尊版據悉,2021年,小愛同學AI字幕宣布加入日文、韓文翻譯。 AI字幕採用小米自研同聲傳譯技術,提供更快速、穩定且精準的字幕閱讀體驗。 1.官方稱,小愛翻譯不僅能在影音場

使用正規表示式去除 PHP 數組中的重複值 使用正規表示式去除 PHP 數組中的重複值 Apr 26, 2024 pm 04:33 PM

使用正規表示式從PHP數組中移除重複值的方法:使用正規表示式/(.*)(.+)/i匹配並取代重複項。遍歷數組元素,使用preg_match檢查匹配情況。如果匹配,請跳過值;否則,將其添加到無重複值的新數組中。

如何將 MySQL 查詢結果陣列轉換為物件? 如何將 MySQL 查詢結果陣列轉換為物件? Apr 29, 2024 pm 01:09 PM

將MySQL查詢結果陣列轉換為物件的方法如下:建立一個空物件陣列。循環結果數組並為每一行建立一個新的物件。使用foreach迴圈將每一行的鍵值對賦給新物件的對應屬性。將新物件加入到物件數組中。關閉資料庫連線。

C++ 函式回傳物件時有什麼需要注意的? C++ 函式回傳物件時有什麼需要注意的? Apr 19, 2024 pm 12:15 PM

在C++中,函數傳回物件需要注意三點:物件的生命週期由呼叫者負責管理,以防止記憶體洩漏。避免懸垂指針,透過動態分配記憶體或返回物件本身來確保物件在函數返回後仍然有效。編譯器可能會最佳化傳回物件的副本生成,以提高效能,但如果物件是值語義傳遞的,則無需副本生成。

數組和物件在 PHP 中的差異是什麼? 數組和物件在 PHP 中的差異是什麼? Apr 29, 2024 pm 02:39 PM

PHP中,數組是有序序列,以索引存取元素;物件是具有屬性和方法的實體,透過new關鍵字建立。數組存取透過索引,物件存取通過屬性/方法。數組值傳遞,物件參考傳遞。

程式設計是乾啥的,學了有什麼用 程式設計是乾啥的,學了有什麼用 Apr 28, 2024 pm 01:34 PM

1、程式設計可用於開發各種軟體和應用程序,包括網站、手機應用程式、遊戲和數據分析工具等。它的應用領域非常廣泛,幾乎涵蓋了所有行業,包括科學研究、醫療保健、金融、教育、娛樂等。 2.學習程式設計可以幫助我們提升問題解決能力和邏輯思考能力。在程式設計過程中,我們需要分析和理解問題,找出解決方案,並將其轉換為程式碼。這種思維方式能夠培養我們的分析和抽象能力,提升我們解決實際問題的能力。

魔改「黒神話悟空」,打敗 Midjourney,這個 AI 生圖神器讓人上頭 魔改「黒神話悟空」,打敗 Midjourney,這個 AI 生圖神器讓人上頭 Aug 23, 2024 pm 09:42 PM

當AI文生圖比拼真實度、藝術感,Ideogram開闢了一個刁鑽的賽道:在圖片上精準生成文字,字體和排版都好看。這個需求並不小眾,一鍵生成海報、插畫,還不用P圖,能夠省不少事,很適合對設計一竅不通的普通人。我們之前寫過Ideogram的1.0版本。 8月21日,2.0版來了,真實感更好了,海報更有設計感了,文字這個看家本領也更強了。你或許從來沒有聽過它,這是一款前Google員工開發的AI產品,缺點不少,但長板能「彎道超車」Midjourney。指路https://ideogram.ai/A

使用 Python 解決問題:作為初學者,解鎖強大的解決方案 使用 Python 解決問題:作為初學者,解鎖強大的解決方案 Oct 11, 2024 pm 08:58 PM

Python 讓初學者能夠解決問題。

See all articles