搜尋
首頁php教程php手册PHP中的面向对象和面向过程的编程方法

PHP中的面向对象和面向过程的编程方法

Jun 13, 2016 am 10:32 AM
php天才物件方法正確簡介程式設計評價過程面向風險


  简介
  “真正的天才具有正确评价不确定的,有风险的和矛盾的信息的能力。--邱吉尔”
  
  使用许多编程语言时,你通常只能使用面向对象或面向过程二者之一的编程方式。而在php(做为现在的主流开发语言)中,你可以自由选择或混用。目前绝大多数php(做为现在的主流开发语言)程序员使用面向过程的方式,因为解析WEB页面本身就非常“过程化”(从一个标签到另一个标签)。在HTML中嵌入过程处理代码是很直接自然的作法,所以php(做为现在的主流开发语言)程序员通常使用这种方式。
  
  如果你是刚接触php(做为现在的主流开发语言),用面向过程的风格来书写代码很可能是你唯一的选择。但是如果你经常上php(做为现在的主流开发语言)论坛和新闻组的话,你应该会看到有关“对象”的文章。你也可能看到过如何书写面向对象的php(做为现在的主流开发语言)代码的教程。或者你也可能下载过一些现成的类库,并尝试着去实例化其中的对象和使用类方法--尽管你可能没有真正理解这些类为什么可以工作,或者为什么需要使用面向对象的方法来实现功能。
  
  应该使用“面向对象”的风格还是“面向过程”的风格?双方各有支持者。像“对象是低效的”或“对象非常棒”这样的议论也时有耳闻。本文不尝试轻易判定两种方法的哪种具有绝对的优势,而是要找出每种方法的优缺点。
  
  以下是面向过程风格的代码示例:
  
  (做为现在的主流开发语言)
  print "Hello, world.";
  ?>
  
  以下是面向对象风格的代码示例:
  
  (做为现在的主流开发语言)
  class helloWorld {
  function myPrint() {
  print "Hello, world.";
  }
  }
  $myHelloWorld = new helloWorld();
  $myHelloWorld->myPrint();
  ?>
  
  如果你想了解一些“面向对象”的基本知识,请使用Google搜索,网络上有非常多精彩的文章。
  
  谁像这样写代码?
  为了理解为什么这个论题成为论坛上口水战的导火线,我们看一些每个阵营的比较极端的例子。我们看看“过程狂热”和“对象狂热”。看看他们的观点听起来是不是有点熟悉。
  
  过程狂热
  过程狂热曾在上课时被计算机教师批评,因为这种方法没有使用更加抽象的实现方式。而支持面向过程者的观点“它可以工作!”并不能提高其编程水平和档次。毕业后他们可能找到一个工作,写驱动程序,文件系统或其它的偏向底层的编程,他们的注意力集中于速度和代码的精炼。
  
  “过程狂热”极端的例子是抵制对象,抵制抽象化。他们总在想着如何让程序运行起来更快,而不在乎别人是否能读懂他们的代码。他们常常把编程当成竞赛而不是团队活动。除了php(做为现在的主流开发语言)外,他们最喜爱的编程语言是C和汇编。在php(做为现在的主流开发语言)世界中他们可能会开发PECL模块,贡献出高效率的代码。
  
  对象狂热
  对象狂热者热衷于在任何时候使用面向对象的风格来书写代码。他们没有真正考虑过用这种方式是否会影响程序的执行效率。有时候让人觉得他们更享受抽象的设计概念而不是现实的代码。他们通常很可能是项目管理者或文档书写者。
  
  对象狂热者指出,如果没有抽象的设计方法我们仍然在使用0和1进行编程。他们喜欢用伪码来描述问题。极端的例子是对象狂热者即使知道有时候会牺牲效率仍然使用对象。 除了php(做为现在的主流开发语言),他们最喜欢的语言是Java和Smalltalk。在php(做为现在的主流开发语言)世界中,他们可能会开发PEAR模块,贡献文档化非常好,易于维护的代码。
  
  不要偏激和讽刺
  你知道为什么论坛上总是充斥着各种偏见吗?你的经验阅历,你对新事物的态度都可能是原因。作为程序员,我们需要时常注意这些偏见并以开放的心态去学习新事物。
  
  你的编码倾向?
  考虑一下当你书写php(做为现在的主流开发语言)代码时有什么偏好或倾向。通常这些偏好是比较隐晦的。有时候你可能在每个项目中有着同样的偏好。我个人倾向于“优雅”,但我不想在此定义如何才是“优雅”的代码,那应当出现在另一篇文章里。但是,理论化的偏好不一定适合于实际项目—相反地,他们常常是一种偏见。

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡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

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

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

記事本++7.3.1

記事本++7.3.1

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

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),