锁定老帖子 主题:搞不懂php中的面向对象
精华帖 (0) :: 良好帖 (3) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2009-06-19
dualface 写道 php 没有线程,运行模式也和 java 完全不同,还是多多补充基础知识吧 你开玩笑吧,php没多线程?pcntl_fork |
|
返回顶楼 | |
发表时间:2009-06-19
记得PHP作者不建议使用框架和过度包装,PHP本身就是嵌入在HTML里的标签语言,感觉用PHP开发WEB程序继承都不需要用,函数+模板都可以处理大多数事情。
|
|
返回顶楼 | |
发表时间:2009-06-19
luolonghao 写道 记得PHP作者不建议使用框架和过度包装,PHP本身就是嵌入在HTML里的标签语言,感觉用PHP开发WEB程序继承都不需要用,函数+模板都可以处理大多数事情。 我开始也是你这么想的,但是现在觉得框架不是不需要,要看什么场合。简单的项目就无所谓了,但中型项目用框架还是可以减少很多重复工作。而且维护性,扩展性比较强! |
|
返回顶楼 | |
发表时间:2009-06-19
怎么忽然觉得PHP的语法这么BT啊..
return $this->x; 像火星文一样.-_-! |
|
返回顶楼 | |
发表时间:2009-06-19
only_java 写道 dualface 写道 php 没有线程,运行模式也和 java 完全不同,还是多多补充基础知识吧 你开玩笑吧,php没多线程?pcntl_fork pcntl_fork — Forks the currently running process |
|
返回顶楼 | |
发表时间:2009-06-19
最后修改:2009-06-19
lyhapple 写道 怎么忽然觉得PHP的语法这么BT啊..
return $this->x; 像火星文一样.-_-! 用Java思路写PHP简直是没事找麻烦。从PHP手册的例子看出PHP不是这么用的。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Example</title> </head> <body> <?php echo "Hi, I'm a PHP script!"; ?> </body> </html> |
|
返回顶楼 | |
发表时间:2009-06-20
luolonghao 写道 记得PHP作者不建议使用框架和过度包装,PHP本身就是嵌入在HTML里的标签语言,感觉用PHP开发WEB程序继承都不需要用,函数+模板都可以处理大多数事情。
恐怕不是这样的吧,对任何语言来说,能重用代码都是一件好事情。 |
|
返回顶楼 | |
发表时间:2009-06-20
luolonghao 写道 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Example</title> </head> <body> <?php echo "Hi, I'm a PHP script!"; ?> </body> </html> 实际项目的页面怎么可能这么简单呢。。 所以,模板是肯定用到的。 |
|
返回顶楼 | |
发表时间:2009-06-20
only_java 写道 dualface 写道 php 没有线程,运行模式也和 java 完全不同,还是多多补充基础知识吧 你开玩笑吧,php没多线程?pcntl_fork 兄台,你开玩笑吧,pcntl_fork 是线程? |
|
返回顶楼 | |
发表时间:2009-06-20
only_java 写道 diogin 写道 PHP是一门解释型语言,类的定义都是在运行时完成的,所以 static function 里使用了 $this,在编译时是无法捕获的,只有运行时才会碰到问题。你这么用是违反基本的面向对象原则的,只是因为PHP的动态特性,你可以这么写,但这是没意义的。
PHP跟Java还是有相当多的区别的,不要把Java那些运行原理拿来套PHP。 继承下来的子类,如果有构造函数,在实例化时PHP是不会主动调用父类的构造函数的,除非你在子类的构造函数里显式调用父类的构造函数。 是否面向对象不是看你有没有用 static。 面向对象与否是看你如何看待某个事物,而不是形式化的 class、static。 这位貌似是个高手,static function 里使用了 $this,在编译时是无法捕获的 但在实际执行时是正确的 是否面向对象不是看你有没有用 static。 我没说面向对象一定要用static,我只是好奇一个项目中的大部分类文件都是用static方法,甚至连个成员也没有。感觉起来有点当成函数使用一样,只不过这些函数在某个类下才能用。 面向对象与否是看你如何看待某个事物,而不是形式化的 class、static。 这句话感觉有点在讲哲学的味道,我觉得php中的面向对象最大的好处就是维护起来更好 如果只是拿个 class 套一下代码,所谓的“面向对象”“更好维护”基本是自我安慰。 面向对象编程受程序运行环境的影响是非常大的。在PHP解释器的运行环境上,很多传统的面向对象观念都需要转变,比如 static,比如什么是对象,什么是类,比如是否可以把类当成对象用,然后基于“类对象”使用原型继承,等等。 还是那句话,看一个设计是否优秀,不是看用没用上形式化的 class 之类,而是看开发者如何看待某事物。 没有成员的“类”就是不好的设计?不见得,只要你给它分配了很明确的职责,它就是一个良好的对象。 推荐一本OO经典,《对象设计:角色、责任与协作》。 |
|
返回顶楼 | |