English 中文(简体)
在PHP中使用面向对象编程来组合许多函数(类似于命名空间)?
原标题:
  • 时间:2008-12-16 19:04:46
  •  标签:

我正在使用PHP工作,我想知道将许多函数合并到类中是否是不好的做法。我知道这并不是类的目的,但我这样做的原因是为了提供命名空间。如果在执行PHP脚本时初始化10个类而不是2或3个,会产生多大的影响?

问题回答

如果您使用的是PHP版本<5.3(您很可能使用的是),因此无法使用命名空间,则可以使用类似以下内容:

<?php
class Foo {
   public static function aStaticMethod() {
       // ...
   }
}

Foo::aStaticMethod();
?> 

(从PHP手册复制)将其翻译成中文:

我认为这在某种程度上是类的功能 - 功能的分组。

这不会有任何性能相关的问题(您可以执行数百万次甚至不会注意到 - 应该没有运行时成本,只有一分钟额外的解析成本,这是可以忽略的)。现代的PHP框架带来了许多代码并且内部创建了很多对象 - 我们不必担心PHP性能,数据库性能几乎总是首先影响到您。确保您的代码易读易维护(是的,特别是PHP代码 ;))如果这意味着分组功能,请这样做。

如果你做网页而不是核模拟的话,“97%的时间,过早的优化都是万恶之源”。

编辑:public和static仅适用于php5,在php<5中,您可以尝试:

<?php
class Foo {
   function aStaticMethod() {
       // don t touch $this
   }
}

Foo::aStaticMethod();
?> 

如果你如此关注性能,以至于加载10个类太慢,那么你不应该使用PHP。 (Chinese Simplified)

至少使用一个操作码缓存器,如APC,然后加载类根本不应该成为负担。

你可能不知道PHP最近已经拥有一流的命名空间支持:http://php.net/language.namespaces。





相关问题
热门标签