php - 为什么要在 php 的内部函数中添加命名空间?
问题描述
在 Symfony 中,有些函数有根命名空间而有些函数没有,为什么?
例如:
// code from symfony
if (file_exists($cache->getPath()) && \is_object($this->container = include $cache->getPath())) {
$this->container->set('kernel', $this);
$oldContainer = $this->container;
$fresh = true;
}
file_exists
没有命名空间,但是\is_object
有。
我注意到这种差异贯穿于整个 Symfony 项目。
解决方案
这很可能是为了获得在 PHP 7.0 中引入某些函数的性能改进,其中一些函数被操作码取代。为了获得这些改进,这些函数必须被根命名空间引用。
PHP-CS-Fixer GitHub 存储库上的这个问题包含一个注释,其中包含使用它的函数列表。file_exists
没有以这种方式改进,因此通过根命名空间引用它不会产生任何性能改进。Symfony GitHub 存储库的 PR 也多次引用此问题。
这是PHP 源代码的链接,您还可以在其中找到具有此行为的函数列表。
推荐阅读
- php - Local Storage 文件加载 VS MySQL 数据加载速度 php
- sql - SQL 中的 CASE 命令
- angular - 错误处理在角度 6 中不起作用
- python - 通过输入自动创建具有准确内容的变量
- sql - 从 SQL Server 表中选择 Nth Min 元素
- java - spring cache redis:LazyInitializationException 无法延迟初始化集合,无法初始化代理 - 没有会话
- visual-studio - Helm 是否应该为每个项目或每个解决方案配置图表
- c# - 构建 Assimp 骨骼层次结构,从根开始
- javascript - 链接时节点的位置发生变化(使用 d3.js)
- php - 不同空间的相同登录