可能重複:
OOP vs Functional Programming vs Procedural面向對象編程與程序編程 - 最大的區別是什麼?
最近我一直被引入到面向對象方法,到目前爲止,我一直在使用功能一直在寫PHP。
現在,說實話,我並沒有真正明白它: 當我使用「函數」的想法時,我只包含一個名爲例如functions.php的文件,其中包含我需要的所有函數,包括變量,當我需要使用這段代碼時,我只需調用它並設置變量,如果有默認變量,則將其保留爲空。
現在據我所知,OO不是寫很多沒有'category'的函數,而是把它們聚集在一個'class'中(例如,所有使用db的函數都在' db'class) - 而不是給他們增加變數,我在班上宣佈這些變數。
所以,感覺就像我基本上做同樣的事情。我知道瓦爾不是全局的OOP,和他們每個實例,這是使更多的瞭解,能夠代碼行,但除此之外,我真的不能感覺到一個很大的區別做:
$html = new html();
$html->src='http://stackoverflow.com';
$html->desc='Great place to learn & share knowledge';
$html->link();
-
html_link('http://stackoverflow.com','Great place to learn & share knowledge');
我同意,這可能是人誰不寫代碼的可讀性,但看不到很大的好處大家都在談論:重用,組織,速度更快等。
分享您的想法,也許我會明白我怎麼可以從OOP :)提前
感謝, 伊克受益。
您不需要意思是「功能性」,你的意思是「程序性」。功能是相當不同的(想想Lisp)。 – 2011-12-24 14:35:26
如果你問我,PHP的「面向對象」支持很大程度上是作爲一種事後的追求。如果您覺得它有用,請使用它,但是當語言的某些方面感覺人爲的,沒有想到的或簡單的莫名其妙時,請不要感到驚訝。 – 2011-12-24 14:36:05
如果您只是使用類作爲名稱空間來分組函數,那麼它不是真正的OOP。 – JohnP 2011-12-24 14:36:21