首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP vs OO PHP -使用哪一个?

问PHP vs OO PHP -使用哪一个?
EN

Stack Overflow用户
提问于 2010-07-13 06:29:56
回答 4查看 3.5K关注 0票数 9

我正在开发一个使用常规PHP的web系统。这是我第一次使用PHP,所以代码既不清晰也不整洁。它将一些HTML代码与PHP混合在一起。我想说我已经完成了一半的代码。

面向对象的PHP的真正优势是什么?该网站是关于书籍和书籍作者的,使用MySQL和Apache。所以这不是一个非常复杂的网站。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-07-13 06:38:55

面向对象的真正优势:您的代码更好地组织,更容易维护,更模块化(因此更容易重用),并且潜在地更不脆弱(因为状态和实现的封装,希望还有更好的安全性)。(我内心的愤世嫉俗还说,如果你学习了面向对象的PHP,你就迈出了离开PHP ghetto的重要一步。哈哈。对我很有效!)

已经有很多来自PHPers在堆栈溢出上转向面向对象的问题了:

更不用说有无数的PHP面向对象的教程了。我的观点:基本上,是的,如果您正在编写PHP,那么您可能应该为最琐碎的应用程序之外的任何东西编写面向对象的PHP。有许多类似Rails的PHP框架可以让您的工作更轻松,并可能帮助您成为一名更好的程序员。

票数 16
EN

Stack Overflow用户

发布于 2010-07-13 06:36:41

面向对象的PHP与过程化风格的区别并不在于混入PHP代码的HTML代码量。因此,如果您唯一关心的是混合,那么您应该寻找其他方法来清理代码。例如,您可以为动态内容创建带有占位符的html模板文件,并使用file_get_contents和str_replace在运行时注入动态内容。

票数 2
EN

Stack Overflow用户

发布于 2011-09-02 13:11:43

在我看来,我们PHPers可以彻底抛弃对象(类实例)的概念,我们只需要数组和模式类:

初始模式下的所有数组都支持任何数组函数作为其方法:

代码语言:javascript
复制
<?php
$array1->array_flip(this);
?>

使用"->mode()“验证最小数据集,然后切换模式类:

代码语言:javascript
复制
<?php
$array1->mode('class1', $success);
?>

任何模式类都没有"->construct()“,但有"->validate()”来验证最小数据集。

处于某种模式的数组仍然可以使用数组函数作为其方法,但在使用其中任何一个数组函数后,数组将切换回基本数组模式,我们需要使用"->mode('class1',$success);“来切换回模式。

这里的基本思想是以数据为中心的编程;我们需要分离数据(数组)和活动(类方法)。

我们可以修改PHP引擎,去掉部分OO (面向对象),并支持Mode Class。我们可以叫它MyPHP。

例如:$array_man1可以设置为两种模式: cls_normal_man和cls_crazy_man:

代码语言:javascript
复制
<?php
$array_man1->mode('cls_normal_man')->normal_method1()->mode('cls_crazy_man')->crazy_method1();
?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3232777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档