php use加载类,PHP的use语句在加载类时是否会引起额外的工作?

本文详细介绍了PHP中`use`语句的作用,它并不实际加载类,而是创建一个别名列表。当尝试使用未声明的类时,PHP会根据这个列表尝试找到完全限定类名。关于PSR-0/PSR-4自动加载器,它们的工作方式不受代码样本差异影响,因为PHP始终以相同方式调用自动加载器。理解这一机制有助于优化PHP代码性能。
摘要由CSDN通过智能技术生成

代码样本1

use Outline\Drawing;

$var = new Drawing();

代码样本2

$var = new Outline\Drawing();

题:

如果我在示例1中使用代码,PHP是否会使硬件工作更困难(查找更多文件或进行更多处理)?我敢肯定,即使是在某些代码的级别上,也能确定出哪些使用行与哪个类相匹配.我想确切地了解正在发生的事情.

简而言之:

>在弄清楚use语句的使用和它应该用于的类之间的联系时,PHP会做什么?

>当涉及这两个代码样本时,PSR-0 / PSR-4自动加载器的工作方式是否受到影响?

解决方法:

What does PHP do when working out the connection between the use of the use statement and a class it is supposed to be for?

use语句实际上并未将名称空间/类加载到文件中.它只是设置别名列表以引用该命名空间中的类.

当遇到尚未声明的类时,它将使用该别名列表尝试完全限定类名(替换前缀).如果找不到该类的别名,它将使用当前作用域的名称空间来限定该类的名称.

仅当类名完全合格时,该php才会尝试自动加载该类(调用可能已定义的各种自动加载器).

Are PSR-0/PSR-4 autoloaders affected in the way they work when it comes to these two code samples?

不,自动加载器不会受到代码示例差异的影响,因为php会使用完全相同的参数以完全相同的方式调用自动加载器.

标签:autoload,psr-4,psr-0,php

来源: https://codeday.me/bug/20191029/1962392.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值