我已经阅读了关于名称空间的文章,并且想到了最实际的用法之一。
如果可以使用名称空间来避免与PHP的核心函数发生冲突,那么我设想某个人在某个时候创建了一个具有更快核心函数的库?
例如,假设strtotime()在PHP中非常慢。有人说,“哦,这就是它慢的原因,它拥有并非每个人都需要的所有功能!”并且发布了一个更有效的strtotime版本,它不会因为名称空间而发生冲突。
像这样的东西存在吗?我是否完全忽略了名称空间的意义?
编辑:,谢谢,各位。
发布于 2011-02-20 20:00:53
名称空间的重点不是避免与PHP函数名称的冲突,而是与其他PHP代码的冲突。例如,如果您正在使用其他人的模板库,其中有一个名为Template的类,那么您也不能自己创建一个模板,即使这是您正在构建的类的最佳名称。有了名称空间,所有的类名都存在于它们自己的气泡中。因此,您可以拥有\MyLibrary\Template和\OtherLibrary\Template。
发布于 2011-02-20 19:56:28
为什么像strtotime这样的本地方法比它的内置PHP版本要慢,除非它效率很低(在这种情况下,本机方法可能会被更新)?
不要担心每一微秒的表现,直到你处于这样的境地,把钱扔到这个问题上并不能让它消失。
http://www.codinghorror.com/blog/2008/12/hardware-is-cheap-programmers-are-expensive.html
发布于 2011-02-20 19:57:15
这将是命名空间的有效使用,但我不知道以这种方式重写核心库的任何大规模工作。
SPL提供了改进的库,但使用类作为组织。
如果您问我,核心PHP库的主要问题不是性能-大多数函数只是与C或操作系统对应的接口。更紧迫的是命名约定和参数顺序(不过,这些问题也可以使用命名空间方法解决)
https://stackoverflow.com/questions/5059589
复制相似问题