代码示例1
use Outline\Drawing;
$var = new Drawing();
代码示例2
$var = new Outline\Drawing();
问题:
如果我使用示例 1 中的代码,PHP 是否会使硬件工作更加困难(查找更多文件或执行更多处理)?我确信有些事情会完成,即使它是在某些代码级别上确定哪些use
行与哪个类相匹配。我想知道究竟发生了什么。
简而言之:
- PHP 在处理使用之间的联系时会做什么?
use
声明和它应该用于的类?
- 当涉及到这两个代码示例时,PSR-0/PSR-4 自动加载器的工作方式是否会受到影响?
当确定 use 语句的使用和它应该用于的类之间的联系时,PHP 会做什么?
use 语句实际上并不将名称空间/类加载到您的文件中。它只是设置一个别名列表来引用该名称空间中的类。
当它遇到尚未声明的类时,它会使用该别名列表来尝试完全限定类名(前缀替换)。如果找不到类的别名,它将使用当前范围的命名空间来限定类名。
仅当类名完全限定时,php 才会尝试自动加载该类(调用可能已定义的各种自动加载器)。
当涉及到这两个代码示例时,PSR-0/PSR-4 自动加载器的工作方式是否会受到影响?
不会,自动加载器的工作方式不会受到代码示例差异的影响,因为 php 将以完全相同的方式使用完全相同的参数调用自动加载器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)