可能重复:
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