php namespace 别名,PHP namespace 命名空间 的基础

1. 命名空间概述

什么是命名空间?从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色。具体举个例子,文件 foo.txt 可以同时在目录/home/greg 和 /home/other 中存在,但在同一个目录中不能存在两个 foo.txt 文件。另外,在目录 /home/greg 外访问 foo.txt 文件时,我们必须将目录名以及目录分隔符放在文件名之前得到 /home/greg/foo.txt。这个原理应用到程序设计领域就是命名空间的概念。

2. 定义命名空间

语法:<?php

namespace 命名空间名;

?>

特点:

1. namespace  需要PHP 5.3 +

2. namespace 前面不允许任何的输出流代码(除了namespace自己),

它的作用范围 到下一个namespace开始 或 脚本结束

3. namespace只对本脚本起作用

4. 文件如果没有定义命名空间,则默认在全局命名空间之中

3. 定义子命名空间

namespace aaa\bbb\ccc;

?>

4. 在同一个文件中定义多个命名空间

1. 不推荐 一般一个文件中 定义一个命名空间

2. 万不得已 建议使用 {} 进行定界

5. 使用命名空间:基础

1. 非限定名称

直接调用函数/类型/常量,没有命名空间成分

2. 限定名称

就是使用时,有命名空间成分,但不以反斜线开头的. 类似于相对路径

3. 完全限定名称

以反斜线开头的, 又有命名空间成分的. 类似于绝对路径

6. 命名空间 和 动态语言特征

如果把 函数名/类名/常量名 赋值给变量去动态使用的话

在命名空间里 `必须` 写完全限定名称

注意:  在命名空间字串里 必须使用单引号包裹,不解析转义字符

7. namespace关键字和__NAMESPACE__常量

* namespace 关键字

声明命名空间

用来简化调用

* __NAMESPACE__ 常量

获取本命名空间的名字

PS.

::class

自 PHP 5.5 起,关键词 class 也可用于类名的解析。使用 ClassName::class 你可以获取一个字符串,包含了类 ClassName 的完全限定名称。这对使用了 命名空间 的类尤其有用。

8. 使用命名空间:别名/导入

别名<?php

use 命名空间 [as 别名];

?>

导入

use 命名空间\类名;

只能导入类

9. 全局空间

相当于 没有定义命名空间时的效果

e6786195a9b12e469036af50de8ed574.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值