美文网首页
命名空间二三事

命名空间二三事

作者: 后厂村村长 | 来源:发表于2021-09-07 15:43 被阅读0次

限定类名 与 完全限定类名

命名空间通过关键字 namespace 来声明。如果一个文件中包含命名空间,它必须在其它所有代码之前声明命名空间。

new 腾讯\Pony(); // 限定类名
new \腾讯\Pony(); // 完全限定类名

一般情况,无论是向别人介绍 "腾讯 Pony" 还是 "腾讯公司 Pony",都能听懂。即:在当前命名空间没有声明的情况下,限定类名和完全限定类名是等价的。因为如果不指定空间,则默认为全局(\)。

如果换成如下情况:

namespace 谷歌;
new 腾讯\Pony(); // 实际执行:谷歌\腾讯\Pony
new \腾讯\Pony(); //实际执行:腾讯\Pony

这段代码相当于,你在谷歌公司向其员工介绍Pony,这时一定要指明是 "腾讯公司的Pony"(即,完全限定类名),谷歌员工才会明白。
否则谷歌员工会认为腾讯是谷歌的一个下属子部门,而Pony只是其中的一位员工而已。

上面的例子展示了在命名空间下,使用限定类名和完全限定类名的区别:
完全限定类名 = 当前命名空间 + 限定类名

使用方式

1、导入后使用

/* 直接导入*/
use 腾讯\Pony;
$subC = new Pony(); // 腾讯\Pony(实际结果)
/* 设置别名 */
use 腾讯\Pony AS CEO;
new CEO(); // 腾讯\Pony(实际结果)

2、直接引用(完全限定类名引用)

/* 任何情况 */
new \腾讯\Pony();// 腾讯\Pony(实际结果)

第一种情况是:别人已经认识Pony了,你只需直接说名字,他就能知道你指的是谁。
第二种情况是:Pony就是他们的CEO,你直接说CEO,他可以立刻反应过来。

相关文章

  • 命名空间二三事

    限定类名 与 完全限定类名 命名空间通过关键字 namespace 来声明。如果一个文件中包含命名空间,它必须在其...

  • Hbase 查询语句

    进入HBase数据库 HBase帮助命令: 命名空间 列出所有命名空间 新建命名空间 删除命名空间 该命名空间必须...

  • NDK开发:C++基础

    一、命名空间 standard:标准命名空间 命名空间类似于java中的包。 自定义命名空间 使用命名空间 ::为...

  • Chapter 18 Large-scale project t

    命名空间 inline命名空间 inline声明的命名空间, 可以无视本层命名空间, 而可以被直接使用. 用处: ...

  • C#随笔1

    1命名空间 语法 namespace 命名空间名称{若干个类型} ORnamespace 命名空间名称.子命名...

  • 07_Python函数进阶_全栈开发学习笔记

    # 1. 命名空间 ## 1.1 命名空间的种类 命名空间共有有三种 1) 内置命名空间 —— python解释器...

  • C++入门05 --命名空间,继承,访问权限,初始化列表

    命名空间 命名空间主要是用来解决命名冲突的; namespace xxxx { }:命名空间的定义; 利用::域运...

  • 命名空间 namespace

    /*命名空间:命名空间是一种封装事物的方法命名空间怎么声明?关键字: namespace 导入命名空间: use起...

  • chapter18_命名空间

    命令空间 每个命名空间都是一个作用域位于该命名空间之外的代码必须明确指出所用的名字属于哪个命名空间 命名空间可以是...

  • kubernetes-RBAC实操

    环境准备准备test的命名空间test命名空间下创建serviceaccounttest命名空间下创建rolete...

网友评论

      本文标题:命名空间二三事

      本文链接:https://www.haomeiwen.com/subject/vncpwltx.html