我已经阅读了有关名称空间的内容,并且会想到最实用的用法之一。
如果可以使用名称空间来避免与PHP的核心功能发生冲突,我想某人在某个时候创建了一个具有更快核心功能的库?
例如,假设strtotime()在PHP中确实很慢。有人说,“哦,这就是为什么它很慢,它拥有并非所有人都需要的所有功能!”并发布更高效的strtotime版本,由于名称空间而没有冲突。
这样的事情存在吗?我是否完全错过了命名空间的观点?
编辑:谢谢,伙计。
答案 0 :(得分:3)
为什么像strtotime
这样的本机方法比它的内置PHP版本慢,除非效率非常低(在这种情况下,本机方法可能会更新)?
不要担心每一个微秒的性能,直到你处于这样的位置,以至于在这个问题上砸钱并不会让它消失。
http://www.codinghorror.com/blog/2008/12/hardware-is-cheap-programmers-are-expensive.html
答案 1 :(得分:3)
命名空间的目的不是避免与PHP函数名称冲突,而是与其他PHP代码冲突。例如,如果您正在使用其他人的模板库,其中有一个名为Template的类,那么您也不能自己创建一个,即使这是您正在构建的类的最佳名称。对于名称空间,您的所有类名都存在于它们自己的泡泡中。因此,您可以拥有\ MyLibrary \ Template和\ OtherLibrary \ Template。
答案 2 :(得分:2)
这对于命名空间是有效的用途,但我不知道以这种方式重写核心库的任何大规模工作。
SPL提供了改进的库,但使用类进行组织。
如果你问我,核心PHP库的主要问题不是性能 - 大多数函数只是它们的C或操作系统对应的接口。更迫切的是命名约定和参数顺序(可能也可以使用命名空间方法解决的问题)