关于面向对象编程是否好有很多争论。但是,在 Php 中使用 OOP 速度较慢。使用速度较快的过程式编程和速度较慢的 OOP(因为每次加载页面时都必须启动类,并且大型网站将开始变慢)会是一个不错的选择吗?

更重要的是,将东西包装在类中并使用静态函数会好还是只拥有许多带有前缀 ex 的谎言函数会更好:wp_function().

有帮助吗?

解决方案

是,它几乎总是一个好主意,使用OOP。这是因为OOP是编码和编码风格大部分的风格很容易就能翻过语言转移。

人们不会因为它们使用某种语言的使用编码的样式。人们使用的编码风格,因为编码提供了良好的方法的风格做的事情,他们觉得是可取的。因此,只要基本元件是有(继承,类属性,等等),它总是可行在于编码风格来写。

没有,使用程序的功能来访问它们可能不是一个好主意。这是因为,你可能会不得不做这样的事情,以保持状态。

function myFunc()
{
    global $class;
    $class->doMethod();
}

function myFunc2()
{
    global $class;
    $class->doMethod2();
}

这是一个坏主意,因为它产生了吨全局状态。

其他提示

如果你担心使用面向对象与PHP的原因是速度,不要害怕,PHP是一个缓慢的语言各地。如果你正在做的东西,从使用对象的速度损失的处理器密集型够啦,你不应该使用PHP的。

使用关于静态函数,这是一个设计选择,但我宁可避免类的侧面全部由静态函数。这确实没有优势,它在前缀,并使用结构,只是因为它的存在是不是一个好主意。

大约性能相同的参数作了关于目标C和C ++在当天回来。而这个问题的答案的问题是把可用的内存和处理能力正在不断变得更大,更好,更快的优势。

是,OO需要更多的资源来运行。但使用OO的好处超过支持OO应用程序的硬件成本$$(这很可能是微不足道的)。

据,但是,好东西要关注软件的性能。但是程序与面向对象的引擎盖下寻找一个开始的地方是有点误导。你需要把重点放在编写有效的代码开始,无论是程序上还是OO(两者是相关的)。

请记住,即使PHP可能不是最快的平台,在那里(Java的,例如,踢它的屁股)PHP用于功率一些互联网上最交通重工网站:即Facebook的

如果您对PHP和面向对象的其他任何疑问,只要看看Zend和Magento的(基于Zend的)。 Magento的是一种 VERY 资源密集型平台,内存使用可以是每个实例36MB的向上。但平台本身能够处理百万的点击率。这是因为随着硬件资源的健康服务正确配置的服务器环境中使用做出OO远远胜过了服务器本身的成本的所有优点。但在集群计算机的世界里,不使用处理能力和内存(负责任)提供给你的是 - 恕我直言 - 临床精神错乱

在我的愚见,PHP开发人员不应该试图去的完全的一个方向。 (程序VS面向对象)在某些情况下,你需要的是一些全局函数,其他时候,它是使用对象更有益。不要试图武力的一切的一种方式或其他,灵活采用最适合每种情况。

我强烈Chacha102的答复不同意。

有一个正确的答案,这个问题将写满几本书 - 更别说20线路柱式这里

这两种方法都有其优点和缺点。我会建议任何人谁愿意认为自己是一个很好的程序员在程序上,非程序性和面向对象编程显著经验。以及与不同的方法如SCRUM,级联和RAD体验。

关于PHP的适用性OO VS程序编码,肯定的语言的根在后者(但要注意,Java和ASP都是混合动力,而不是真正的面向对象语言)。

Peronally,我倾向于当我需要生产出其是非常简单的,或者必须具有待操作装配限定的和可预测它的行为写程序代码。然而编写复杂的代码,其中的行为会在运行时有很大变化的时候,我发现OO是极大的开发者时间方面更有效 - 尽管设计是基于围绕一组有限的使用情况

要认为你应该总是写程序代码,因为它会比面向对象的代码的运行速度:

1)不一定是真实的 2)完全忽略的显影剂时间与硬件成本的相对成本

  

会是好的包装里面的东西一类和使用静态函数

由于名称空间现在在PHP可用,这是一个非常混乱的方式,以避免命名空间冲突,这也不是我会推荐。

下进行。

有真的没有完美的答案,因为它取决于这么多未知变量,然后将它不必是全有或全无。

例如,如果拆分您的应用程序到MVC模式,你可能也有模型OO但保留控制器更简单地程序。

您可以使用类作为一种手段来简单地组普通的静态功能,也可以把它大量更远的活动记录图案。

如果你正在构建一个小单页的网页表单射击一个POST关在一封电子邮件中,你真的不需要OO - 免得你也许包括现有的邮件类杠杆

没有人可以给你正确的建议,而不了解该项目你正在做的。

这是说,如果你唯一担心的是速度,那么OO的的稍慢。而且有很多的偷偷摸摸的事情,你可以在程序甚至做PHP的面向对象的收益模仿一些。但是,除非你是一个巨大的工程服用,会增加开销绝不会达到多少。而到时候你有一个庞大的工程,面向对象的优点可能超过其开销的缺点。

我自己好奇的这一点。不幸的是当我从程序OOP的改变了我的代码,我跑了一些基准,而不是提前。

这里的基准代码。

class game{
  function maxp($val){
    return max(0,pow($val,0.5));        
  }
}

$game = new game;

for($i=0;$i<100000;$i++){
  $game->maxp(100);
  //game::maxp(100);
}

OOP结果介于0.13和0.2秒之间;

程序结果0.08和0.1秒之间不等。

结果保持在一段足够的长度相一致。

我鼓励你运行你自己的测试。

PHP 5.4.3

OOP 的优点多于缺点。 请参阅 PHP OOP,有什么好处?. 。另请参阅 PHP 中的 OOP 与 PP.

是为您的应用程序的增长。(它将)也将节省您的挫折多小时。并重复自己(复制粘贴码所有的地方)..:)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top