我正在使用PHP工作,我想知道将许多函数合并到类中是否是不好的做法。我知道这并不是类的目的,但我这样做的原因是为了提供命名空间。如果在执行PHP脚本时初始化10个类而不是2或3个,会产生多大的影响?
在PHP中使用面向对象编程来组合许多函数(类似于命名空间)?
原标题:
问题回答
如果您使用的是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。
相关问题
热门标签
- winforms
- combobox
- fogbugz
- java
- date
- internationalization
- asp.net
- iis
- url-rewriting
- urlrewriter
- c#
- enums
- ocaml
- haxe
- algorithm
- string
- viewstate
- .net
- c++
- c
- symbol-table
- mysql
- database
- postgresql
- licensing
- migration
- vb.net
- vb6
- declaration
- vb6-migration
- python
- psycopg2
- backup
- vmware
- virtualization
- gnu-screen
- authentication
- desktop
- excel
- xll
- cultureinfo
- regioninfo
- oracle
- client
- session
- download
- html
- virtual
- constructor
- scenarios
- perl
- full-text-search
- javascript
- ajax
- testing
- oop
- inheritance
- vim
- encapsulation
- information-hiding