PHP命名空间

本文详细介绍了PHP中的命名空间概念及应用,包括基本使用方法、跨命名空间调用、子空间和公共空间的区别、命名空间的名称类型、如何使用别名简化调用过程以及一些注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概念

为了区分名字相同含义不同的函数、变量、常量等设立的功能

基本应用

使用 namespace 声明命名空间, namespace 需要写在 PHP 脚本的顶部, 必须是第一个 PHP 指令, 不要在前面出现非 PHP 代码、HTML 或空格。

命名空间可以在一个页面中出现多个, 从当前 namespace 到下一个 namespace 就是当前命名空间的范围, 但是建议在一个文件中只出现一个命名空间, 避免混乱

跨命名空间调用元素

不同命名空间是不能直接互相访问的, 需要使用 “空间名\元素名” 的方式调用, 如:


namespace Demo1
    var $name;
namespace Demo2
    echo \Demo1\$name;

子空间和公共空间

PHP 中的命名空间和文件系统很像, 可以定义子空间来描述空间之间的所属关系, 可以使用多层, 一般为公司域名倒置 + 项目名称, 如: xyz\hdiot\www\blog

没有设定命名空间的元素均属于公共空间, 在命名空间中调用默认空间中的元素的语法为: \元素名, 如: \Demo();

命名空间的名称和术语

  • 非限定名称: 不包含前缀的类名称($u = new User()😉, 如果当前命名空间为 \xyz\hdiot, 则 User 将被解析为 \xyz\hdiot\User
  • 限定名称: 包含前缀的名称($u = new hdiot\User()😉, 如果当前名称空间为 \xyz, 则 User 将被解析为 \xyz\hdiot\User
  • 完全限定名称: 包含了全局前缀操作符的名称($u = new \hdiot\User()😉, 在这种情况下 User 将被解析为 \hdiot\User

别名和导入

别名可以看做是快捷使用命名空间的一种方法, 可以为命名空间/类设置别名, 避免了使用冗长的命名空间, 而是用简短的一串字符串代替

使用别名

使用 use 关键字为命名空间/类设置别名


use 命名空间 as 别名;     // 为命名空间设置别名
use 命名空间\类 as 别名;   // 为类设置别名

使用时将原本的命名空间/类替换成别名即可

注意事项

如果别名或者导入的命名空间中的元素, 与原命名空间的元素同名时, 会发生冲突, 产生致命错误

魔术常量


namespace: 当前命名空间

namespace: 当前命名空间
__NAMESPACE__: 当前命名空间名称
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值