5

根据PHP文档

PHP 命名空间支持三种别名或导入:类名别名、接口名别名和命名空间名别名。请注意,不支持导入函数或常量。

有谁知道为什么不支持导入函数或常量的历史或技术背景?

4

1 回答 1

1

我联系了 Jochem Maas(这个 5 年前的 RFC的作者),虽然他不愿指出一个原因(可以理解,因为他目前没有深入参与命名空间系统),但他的三个因素是

  1. 类名冲突比函数名冲突更像是一个现实世界的问题

  2. usePHP 函数和类位于引擎代码的不同区域,在语句中解析哪个是哪个存在技术障碍。

  3. 关于如何处理自动加载器和特定功能的导入/混叠存在一些不确定性/意见分歧。(自动加载器是一个单独的系统,仅适用于类)

最终,PHP 的实用主义赢得了胜利,这就是我们拥有今天的命名空间系统的原因。

于 2013-07-02T16:43:11.440 回答