首頁 後端開發 php教程 避免OOP的形式,POP的思想_PHP教程

避免OOP的形式,POP的思想_PHP教程

Jul 13, 2016 pm 05:25 PM
oop pop 思想 文章 避免

避免OOP的形式,POP的思想
好久没发技术性文章了,今天在21PHP里看到有位兄弟发了这贴子,转了过来.对加强OOP的学习有些用
----------------------------------------------------------
避免OOP的形式,POP的思想
随着PHP对OOP(面向对象编程)支持的增强以及程序设计思想的发展,越来越多的PHP程序员走进了OOP的世界.通过简单的学习,大多数程序员都能
快速的掌握OOP编程的基本技能.程序员们所写的代码里class,new等字符串也越来越多.但是作为程序员的你,是否陷入了一种OO形式,PO思想的
编程陷阱呢?
作为POP时代的程序员,为了实现计算一件房子的所有门的价格,他们会写这样一个函数.
代码:
/******************************************
函数:priceOfHouseDoor($num,$price)
功能:计算所有的门的价格总和
参数:$num 门的数量,$price 每扇门的价格
备注:surfchen @ http://www.yubeinet.com/
******************************************/
function priceHouseDoor($num,$price)
{
return $num*$price;
}
echo priceHouseDoor(2,5);//输出价格
或者干脆来个更过程的:
代码:
$doors=2;//门数量
$price=5;//每扇门的价格
echo $doors*$price;//输出价格
这是典型的POP.当了解了OOP后,很多人可能会改变实现这个功能的代码.或许,程序员们会这么写:
代码:
class house
{
/******************************************


函数:getDoorPrice($num,$price)
功能:计算所有的门的价格总和
参数:$num 门的数量,$price 每扇门的价格
备注:surfchen @ http://www.yubeinet.com/
******************************************/
function getDoorPrice($num,$price)
{
return $num*$price;
}
}
$house=new house;
echo $house->getDoorPrice(2,5);//输出价格
我们一下子就看出来,这段代码用到了OOP的代表 -- 类和实例化.那么,这就是面向对象编程了吗?
我再仔细一看,发现这个类其实只不过是上面的priceOfHouseDoor($num,$price)函数的面向对象形式.
嗯,现在我们先探讨一下到底什么才叫面向对象编程.我的理解是:面向对象编程有两个核心内容.一是类,二是实例.类是对一类事物的抽象,而实
例是这一类事物中的个体.而实例的属性(值)和方法(函数),则分别是这个个体的具体内容和动作.
我们再来看看上面的这个house类.它有一个方法,getDoorPrice($num,$price),引入了两个参数.一个是房子的门的数量,一个是房子门价.我们
发现,当我们使用这个方法时,这两个值是临时构建的,并没有与房子形成任何的联系.在实际生活中,一个房子里的门与房子无任何联系,这是不
可以理解的...正如我们所知道的,OOP其实是我们真实世界的一个缩影.所以,OOP中的房子和房子的门无任何联系,也是不可理解的,是非OO的思
维.
那么,我们应该如何使用真正的OO来实现以上功能呢?请看以下代码:
代码:
class house
{
var $doors;//门的数量
var $pricePerDoors;//每扇门的价格
function setNumOfDoors($num){$this->doors=$num;}//设定门数量
function setPricePerDoor($price){$this->pricePerDoors=$price;}//设定每扇门的价格
/*************
*获得门的价格 *
*************/
function getDoorPrice()
{
return ($this->doors)*($this->pricePerDoors);
}
}
$house=new house;
$house->setNumOfDoors(2);//设定门数量
$house->setPricePerDoor(5);//设定每扇门的价格
echo $house->getDoorPrice();//输出
我们很明显地看到,以上代码的门的数量和价格房子已经结合在了一起.这才是真正的面向对象.
你不觉得吗?^_^

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/532013.htmlTechArticle避免OOP的形式,POP的思想 好久没发技术性文章了,今天在21PHP里看到有位兄弟发了这贴子,转了过来.对加强OOP的学习有些用 ----------------------...
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡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

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

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 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)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1323
25
PHP教程
1272
29
C# 教程
1251
24
如何在技嘉主機板上設定鍵盤啟動功能 (技嘉主機板啟用鍵盤開機方式) 如何在技嘉主機板上設定鍵盤啟動功能 (技嘉主機板啟用鍵盤開機方式) Dec 31, 2023 pm 05:15 PM

技嘉的主機板怎麼設定鍵盤開機首先,要支援鍵盤開機,一定是PS2鍵盤! !設定步驟如下:第一步:開機按Del或F2進入bios,到bios的Advanced(進階)模式普通主機板預設進入主機板的EZ(簡易)模式,需要按F7切換到進階模式,ROG系列主機板預設進入bios的進階模式(我們用簡體中文來示範)第二步:選擇到-【進階】-【進階電源管理(APM)】第三步:找到選項【由PS2鍵盤喚醒】第四步:這個選項預設是Disabled(關閉)的,下拉之後可以看到三種不同的設定選擇,分別是按【空白鍵】開機、按組

CS玩家的首選:建議的電腦配置 CS玩家的首選:建議的電腦配置 Jan 02, 2024 pm 04:26 PM

1.處理器在選擇電腦配置時,處理器是至關重要的組件之一。對於玩CS這樣的遊戲來說,處理器的效能直接影響遊戲的流暢度和反應速度。建議選擇IntelCorei5或i7系列的處理器,因為它們具有強大的多核心處理能力和高頻率,可以輕鬆應對CS的高要求。 2.顯示卡顯示卡是遊戲表現的重要因素之一。對於射擊遊戲如CS而言,顯示卡的表現直接影響遊戲畫面的清晰度和流暢度。建議選擇NVIDIAGeForceGTX系列或AMDRadeonRX系列的顯示卡,它們具備出色的圖形處理能力和高幀率輸出,能夠提供更好的遊戲體驗3.內存電

主機板上的數位音訊輸出介面-SPDIF OUT 主機板上的數位音訊輸出介面-SPDIF OUT Jan 14, 2024 pm 04:42 PM

主機板上SPDIFOUT連接線序最近我遇到了一個問題,就是關於電線的接線順序。我上網查了一下,有些資料說1、2、4對應的是out、+5V、接地;而有些資料則說1、2、4對應的是out、接地、+5V。最好的方法是查看你的主機板說明書,如果找不到說明書,你可以使用萬用電表進行測量。首先找到接地,然後就可以確定其他的接線順序了。主機板vdg怎麼接線連接主機板的VDG接線時,您需要將VGA連接線的一端插入顯示器的VGA接口,另一端插入電腦的顯示卡VGA接口。請注意,不要將其插入主機板的VGA介面。完成連接後,您可以

Java錯誤:編解碼錯誤,如何解決與避免 Java錯誤:編解碼錯誤,如何解決與避免 Jun 24, 2023 pm 05:27 PM

Java是一門非常流行的程式語言,許多專案都是由Java編寫的。然而,當我們在開發過程中遇到「編解碼錯誤」(EncodingandDecodingErrors)時,可能會感到困惑和懷疑。在本文中,我們將介紹Java編解碼錯誤的原因、如何解決和避免這些錯誤。什麼是編解碼錯誤?在Java開發過程中,我們經常需要處理文字和文件。然而,不同的文本和文件可能使

今日頭條發布文章怎麼有收益?今日頭條發布文章獲得更多收益方法! 今日頭條發布文章怎麼有收益?今日頭條發布文章獲得更多收益方法! Mar 15, 2024 pm 04:13 PM

一、今日頭條發布文章怎麼有收益?今日頭條發布文章獲得更多收益方法! 1.開通基礎權益:原創文章選擇投放廣告可獲得收益,影片必須原創橫屏才會有收益。 2.開通百粉權益:粉絲量達百粉以上,微頭條、原創問答創作及問答均可獲得收益。 3.堅持原創作品:原創作品包含文章、微標題及問題等,要求300字以上。注意違規抄襲作品作為原創發布,會被扣信用分,即使有收益也會被扣除。 4.垂直度:做專業領域一類的文章,不能隨意跨領域寫文章,會得不到合適的推薦,達不到作品的專和精,難以吸引粉絲讀者。 5.活躍度:活躍度高,

Java錯誤:JavaFX視圖錯誤,如何處理與避免 Java錯誤:JavaFX視圖錯誤,如何處理與避免 Jun 25, 2023 am 08:47 AM

JavaFX是Java平台的使用者介面框架,類似Swing,但卻更現代化、更靈活。然而在使用時可能會遇到一些視圖錯誤,本文將介紹如何處理和避免這些錯誤。一、JavaFX視圖錯誤的類型在使用JavaFX時,可能會遇到以下幾種視圖錯誤:NullPointerException這是最常見的錯誤之一,通常在嘗試存取未初始化或不存在的物件時發生。這可能

廣聯達軟體電腦設定推薦;廣聯達軟體對電腦的設定需求 廣聯達軟體電腦設定推薦;廣聯達軟體對電腦的設定需求 Jan 01, 2024 pm 12:52 PM

廣聯達軟體是一家專注於建築資訊化領域的軟體公司,其產品被廣泛應用於建築設計、施工、營運等各個環節。由於廣聯達軟體功能複雜、資料量大,對電腦的配置要求較高。本文將從多個方面詳細說明廣聯達軟體的電腦配置推薦,以幫助讀者選擇適合的電腦配置處理器廣聯達軟體在進行建築設計、模擬等操作時,需要進行大量的數據計算和處理,因此對處理器的要求較高。建議選擇多核心、高主頻的處理器,如英特爾i7系列或AMDRyzen系列。這些處理器具有較強的運算能力和多執行緒處理能力,能夠更好地滿足廣聯達軟體的需求。記憶體記憶體是影響計算

Java錯誤:JDBC錯誤,如何解決與避免 Java錯誤:JDBC錯誤,如何解決與避免 Jun 24, 2023 pm 02:40 PM

隨著Java的廣泛應用,Java程式在連接資料庫時經常會出現JDBC錯誤。 JDBC(JavaDatabaseConnectivity)是Java中用於連接資料庫的程式設計接口,因此,JDBC錯誤是在Java程式與資料庫互動時遇到的錯誤。以下將介紹一些最常見的JDBC錯誤及如何解決和避免它們。 ClassNotFoundException這是最常見的JDBC

See all articles