首頁 後端開發 php教程 Classes and Objects in PHP5_PHP教程

Classes and Objects in PHP5_PHP教程

Jul 13, 2016 pm 05:21 PM
and php5 定義 物件 模型 類別 程式設計 面向

Classes and Objects in PHP5_PHP教程 第 1 页 第一节 面向对象编程 [1]
Classes and Objects in PHP5_PHP教程 第 2 页 第二节 对象模型 [2]
Classes and Objects in PHP5_PHP教程 第 3 页 第三节 定义一个类 [3]
Classes and Objects in PHP5_PHP教程 第 4 页 第四节 构造函数和析构函数 [4]
Classes and Objects in PHP5_PHP教程 第 5 页 第五节 克隆 [5]
Classes and Objects in PHP5_PHP教程 第 6 页 第六节 访问属性和方法 [6]
Classes and Objects in PHP5_PHP教程 第 7 页 第七节 类的静态成员 [7]
Classes and Objects in PHP5_PHP教程 第 8 页 第八节 访问方式 [8]
Classes and Objects in PHP5_PHP教程 第 9 页 第九节 绑定 [9]
Classes and Objects in PHP5_PHP教程 第 10 页 第十节 抽象方法和抽象类 [10]
Classes and Objects in PHP5_PHP教程 第 11 页 第十一节 重载 [11]
Classes and Objects in PHP5_PHP教程 第 12 页 第十二节 类的自动加载 [12]
Classes and Objects in PHP5_PHP教程 第 13 页 第十三节 对象串行化 [13]
Classes and Objects in PHP5_PHP教程 第 14 页 第十四节 命名空间 [14]
Classes and Objects in PHP5_PHP教程 第 15 页 第十五节 Zend引擎的发展 [15]

Classes and Objects in PHP5_PHP教程

作者:Leon Atkinson 翻译:Haohappy

  面向对象编程被设计来为大型软件项目提供解决方案,尤其是多人合作的项目. 当源代码增长到一万行甚至更多的时候,每一个更动都可能导致不希望的副作用. 这种情况发生于模块间结成秘密联盟的时候,就像第一次世界大战前的欧洲.

//haohappy注:喻指模块间的关联度过高,相互依赖性太强.更动一个模块导致其它模块也必须跟着更动.

  想像一下,如果有一个用来处理登录的模块允许一个信用卡处理模块来分享它的数据库连接. 当然出发点是好的,节省了进行另一个数据库连接的支出.然而有时,登录处理模块改变了其中一个变量的名字,就可能割断了两者间的协议.导致信用卡模块的处理出错,进而导致处理发票的模块出错. 很快地,体系中所有无关的模块都可能由此出错.

  因此,我觉得有点戏剧性地,绝大多数程序员都对耦合和封装心存感激. 耦合是两个模块间依赖程度的量度. 耦合越少越好.我们希望能够从已有的项目中抽走一个模块并在另一个新项目中使用.

我们也希望在某个模块内部大规模的更动而不用担心对其他模块的影响. 封装的原则可以提供这个解决方案.模块被看待成相对独立,并且模块间的数据通信通过接口来进行. 模块不通过彼此的变量名来窥探另一个模块,它们通过函数来礼貌地发送请求.

  封装是你可以在任何编程语言中使用的一个原则. 在PHP和许多面向过程的语言中,可以偷懒是很有诱惑的.没有什么可以阻止你通过模块来构建一个假想的WEB. 面向对象编程是使程序员不会违背封装原则的一种方法.


  在面向对象编程中,模块被组织成一个个对象. 这些对象拥有方法和属性. 从抽象的角度来看,方法是一个对象的所做的动作,而属性是对象的特性.从编程角度来看,方法就是函数而属性是变量. 在一个理想化的面向对象体系中,每个部份都是一个对象. 体系由对象及对象间通过方法来形成的联系构成.

  一个类定义了对象的属性. 如果你在烘烤一组甜饼对象,那么类将会是甜饼机. 类的属性和方法是被调用的成员. 人们可以通过说出数据成员或者方法成员来表达.


  每种语言提供了不同的途径来访问对象. PHP从C++中借用概念,提供一个数据类型用来在一个标识符下包含函数和变量。最初设计PHP的时候,甚至PHP3被开发出时,PHP并不打算提供开发超过10万行代码的大型项目的能力。随着PHP和Zend引擎的发展,开发大型项目变得有可能,但无论你的项目规模多大,用类来书写你的脚本将可以让代码实现重用。这是一个好主意,特别当你愿意与别人分享你的代码的时候。

  有关对象的想法是计算机科学上最令人兴奋的概念之一。开始很难掌握它,但我可以保证,一旦你掌握了它,用它的思维来思考将会非常自然。


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/532458.htmlTechArticle第 1 页 第一节 面向对象编程 [1] 第 2 页 第二节 对象模型 [2] 第 3 页 第三节 定义一个类 [3] 第 4 页 第四节 构造函数和析构函数 [4] 第 5 页...
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡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脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

替代MLP的KAN,被開源專案擴展到卷積了 替代MLP的KAN,被開源專案擴展到卷積了 Jun 01, 2024 pm 10:03 PM

本月初,來自MIT等機構的研究者提出了一種非常有潛力的MLP替代方法—KAN。 KAN在準確性和可解釋性方面表現優於MLP。而且它能以非常少的參數量勝過以更大參數量運行的MLP。例如,作者表示,他們用KAN以更小的網路和更高的自動化程度重現了DeepMind的結果。具體來說,DeepMind的MLP有大約300,000個參數,而KAN只有約200個參數。 KAN與MLP一樣具有強大的數學基礎,MLP基於通用逼近定理,而KAN基於Kolmogorov-Arnold表示定理。如下圖所示,KAN在邊上具

全面超越DPO:陳丹琦團隊提出簡單偏好優化SimPO,也煉出最強8B開源模型 全面超越DPO:陳丹琦團隊提出簡單偏好優化SimPO,也煉出最強8B開源模型 Jun 01, 2024 pm 04:41 PM

為了將大型語言模型(LLM)與人類的價值和意圖對齊,學習人類回饋至關重要,這能確保它們是有用的、誠實的和無害的。在對齊LLM方面,一種有效的方法是根據人類回饋的強化學習(RLHF)。儘管RLHF方法的結果很出色,但其中涉及了一些優化難題。其中涉及訓練一個獎勵模型,然後優化一個策略模型來最大化該獎勵。近段時間已有一些研究者探索了更簡單的離線演算法,其中之一就是直接偏好優化(DPO)。 DPO是透過參數化RLHF中的獎勵函數來直接根據偏好資料學習策略模型,這樣就無需顯示式的獎勵模型了。此方法簡單穩定

無需OpenAI數據,躋身程式碼大模型榜單! UIUC發表StarCoder-15B-Instruct 無需OpenAI數據,躋身程式碼大模型榜單! UIUC發表StarCoder-15B-Instruct Jun 13, 2024 pm 01:59 PM

在软件技术的前沿,UIUC张令明组携手BigCode组织的研究者,近日公布了StarCoder2-15B-Instruct代码大模型。这一创新成果在代码生成任务取得了显著突破,成功超越CodeLlama-70B-Instruct,登上代码生成性能榜单之巅。StarCoder2-15B-Instruct的独特之处在于其纯自对齐策略,整个训练流程公开透明,且完全自主可控。该模型通过StarCoder2-15B生成了数千个指令,响应对StarCoder-15B基座模型进行微调,无需依赖昂贵的人工标注数

LLM全搞定! OmniDrive:集3D感知、推理規劃於一體(英偉達最新) LLM全搞定! OmniDrive:集3D感知、推理規劃於一體(英偉達最新) May 09, 2024 pm 04:55 PM

寫在前面&筆者的個人理解這篇論文致力於解決當前多模態大語言模型(MLLMs)在自動駕駛應用中存在的關鍵挑戰,即將MLLMs從2D理解擴展到3D空間的問題。由於自動駕駛車輛(AVs)需要針對3D環境做出準確的決策,這項擴展顯得格外重要。 3D空間理解對於AV來說至關重要,因為它直接影響車輛做出明智決策、預測未來狀態以及與環境安全互動的能力。目前的多模態大語言模型(如LLaVA-1.5)通常只能處理較低解析度的影像輸入(例如),這是由於視覺編碼器的分辨率限制,LLM序列長度的限制。然而,自動駕駛應用需

Yolov10:詳解、部署、應用一站式齊全! Yolov10:詳解、部署、應用一站式齊全! Jun 07, 2024 pm 12:05 PM

一、前言在过去的几年里,YOLOs由于其在计算成本和检测性能之间的有效平衡,已成为实时目标检测领域的主导范式。研究人员探索了YOLO的架构设计、优化目标、数据扩充策略等,取得了显著进展。同时,依赖非极大值抑制(NMS)进行后处理阻碍了YOLO的端到端部署,并对推理延迟产生不利影响。在YOLOs中,各种组件的设计缺乏全面彻底的检查,导致显著的计算冗余,限制了模型的能力。它提供了次优的效率,以及相对大的性能改进潜力。在这项工作中,目标是从后处理和模型架构两个方面进一步提高YOLO的性能效率边界。为此

清華接手,YOLOv10問世:效能大幅提升,登上GitHub熱門榜 清華接手,YOLOv10問世:效能大幅提升,登上GitHub熱門榜 Jun 06, 2024 pm 12:20 PM

目標偵測系統的標竿YOLO系列,再次獲得了重磅升級。自今年2月YOLOv9發布之後,YOLO(YouOnlyLookOnce)系列的接力棒傳到了清華大學研究人員的手上。上週末,YOLOv10推出的消息引發了AI界的關注。它被認為是電腦視覺領域的突破性框架,以其即時的端到端目標檢測能力而聞名,透過提供結合效率和準確性的強大解決方案,延續了YOLO系列的傳統。論文網址:https://arxiv.org/pdf/2405.14458專案網址:https://github.com/THU-MIG/yo

李飛飛揭秘創業方向「空間智能」:視覺化為洞察,看見成為理解,理解導致行動 李飛飛揭秘創業方向「空間智能」:視覺化為洞察,看見成為理解,理解導致行動 Jun 01, 2024 pm 02:55 PM

史丹佛李飛飛創業後,首次揭秘新概念「空間智能」。這不僅是她的創業方向,也是指引她的“北極星”,被她認為是“解決人工智慧難題的關鍵拼圖”。視覺化為洞察;看見成為理解;理解導致行動。在李飛飛15分鐘TED演講完整公開的基礎上,從數億年前生命進化的起源開始,到人類如何不滿足於自然賦予而發展人工智慧,直到下一步如何建構空間智能。 9年前,李飛飛在同一個舞台上,向世界介紹了剛誕生不久的ImageNet——這一輪深度學習爆發的起點之一。她本人也向網友自我安麗:如果把兩個影片都看了,你就能對過去10年的電腦視

速度秒掉GPT-4o、22B擊敗Llama 3 70B,Mistral AI開放首個代碼模型 速度秒掉GPT-4o、22B擊敗Llama 3 70B,Mistral AI開放首個代碼模型 Jun 01, 2024 pm 06:32 PM

對標OpenAI的法國AI獨角獸MistralAI有了新動作:首個代碼大模型Codestral誕生了。作為一個專為程式碼產生任務設計的開放式產生AI模型,Codestral透過共享指令和補全API端點幫助開發人員編寫並與程式碼互動。 Codestral精通程式碼和英語,因而可為軟體開發人員設計高階AI應用。 Codestral的參數規模為22B,遵循新的MistralAINon-ProductionLicense,可用於研究和測試目的,但禁止商用。目前,該模型可以在HuggingFace上下載。下載地址

See all articles