2010-09-21 84 views
3

我剛開始學習OOP,對於執行函數或OOP的好處我有點困惑。我知道OOP在組織你的代碼方面更具多功能性,但是例如,我有50行代碼,發生在我網站的7/10頁上。創建一個文件並在文件中添加一個函數,然後使用一個include,或者對一個類執行相同的操作會更好嗎?此外,將羣體集中到一個文件幷包括它會更好嗎?如果任何人有一些洞察力,可能有助於澄清我的困惑,我會很感激。函數與OOP問題

+1

請注意,僅僅因爲您將函數放入類中作爲「集合」,並不一定會使其成爲「OOP」編程。它或多或少會被視爲查看/管理代碼的更簡單方法。 – 2010-09-21 22:38:34

+1

@premiso,說得好。 OO或程序編程都不會自動給你組織。無論樣式如何,您都可以編寫(聯合)組織代碼。 – Matthew 2010-09-21 22:48:54

+0

感謝你們,感謝它 – Scarface 2010-09-21 22:58:08

回答

3

適當的指標是有用的。

如果此代碼只做一件事,接受一些輸入參數並返回單個結果,那麼它是一個函數。

如果代碼可以收集數據,並且對這些數據做了一些棘手的事情,並且您可以專門重用結果或獲得不同的結果,然後將其轉換爲對象。

+0

感謝您的回覆馬里奧,欣賞它。 – Scarface 2010-09-21 22:56:18

2

如果你有一個50行的功能,那麼把它放到一個文件中並把它包含在你的頁面上沒什麼問題。

當你有更多的代碼時,OOP的好處就來了。每個文件都有一個類是標準做法。

+0

感謝您的回覆 – Scarface 2010-09-21 22:55:23

+0

它被認爲效率低下,有多個這樣的包括,例如,對於頁腳或標題或一些其他簡單的信息,因爲它會創建更多的http請求? – Scarface 2010-09-21 22:57:20

+2

沒有。包含其他文件所需的時間非常短,無關緊要。無論如何,你從這樣做得到的維護提升會彌補它的不足。想象一下,如果你必須改變頁眉和頁腳,你必須這樣做在100個文件,而不是2. – Galen 2010-09-21 23:05:34

1

幾乎所有的「實用程序」功能都可以按功能組合在一起。你從一個或兩個開始......最後得到一個充滿了一百個雜項功能的文件。所以我絕不會使用全局函數來重用代碼。相反,考慮:

<?php 
class Group 
{ 
    static public function func1() { } 
    static public function func2() { } 
} 

Group::func1(); 
?> 

在PHP 5.3,你可以使用命名空間來代替:

<?php 
namespace Group; 

function func1() { } 
function func2() { } 
?> 

<?php 
// from a different file/global namespace: 
Group\func1(); 
?> 

現在使用類VS功能有關......這很簡單。如果某些功能組「擁有」數據或需要記住某種狀態,則幾乎肯定要使用某個類。

+0

感謝您的迴應,當您說自己的數據,或需要記住一個國家時,您的意思是什麼。你能舉一個例子嗎?再次感謝。 – Scarface 2010-09-21 22:54:15

+1

很難給出一個很好的解釋,而不會涉及到很多細節。你可能想搜索這個網站和其他的一般「爲什麼/何時使用oop/classes」的問題。但是可以這麼想:如果你從一個函數內部訪問全局數據或者從函數到函數傳遞大量/部分數組,那麼你可能應該使用類。 – Matthew 2010-09-21 23:23:20

+0

好的,謝謝konforce – Scarface 2010-09-21 23:24:45