开发者学堂课程【PHP 进阶教程-由浅入深掌握面向对象开发-第三阶段:命名空间基础】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/713/detail/12722
命名空间基础
内容简介:
一:命名空间的基本语法和作用
二:具体命名空间使用步骤
三:使用具体示例
四:小结
一:命名空间的基本语法和作用
1、命名空间使用namespace关键字定义空间,定义语法为:namespace 命名空间名字;
2、命名空间必须定义在所有代码之前(前面不能有任何代码性的东西,注释除外),即我们整个代码里面第一行有效代码(从上往下)是namaspace 。
3、命名空间可以写任意内容(命名空间不是用来规范我们后续写的内容,而是规范它想规范的东西,实现分离。就如文件夹的存在不能使里面的文件怎么样,它只能保证同名的文件可以在磁盘操作。)但是只有命名空间元素真正受空间限制。
4、命名空间元素是结构性内容,不会自动运行的代码,同一脚本不允许出现同名的,有三类:常量,函数和类(接口)。
二:具体命名空间使用步骤
1、确定使用命名空间:有一些结构性的内容与其他开发者冲突(重名)
2、在一开始定义命名空间
三:使用具体示例
1、基本语法:namespace 空间名字
#定义空间
namespace my_space #定义一个叫做my_space的空间
2、命名空间的命名规则
l 由字母,下划线和数字构成
l 可以以字母和下划线开头
较少出现单词空间名,一般使用下划线法
3、命名空间的作用:能够创建同名结构,包含函数,常量和类。
#定义空间
namespace space1;
( #后续所有结构性内容理论上都属于space1)
function display( ){
echo_ NAMIESPACE_ , '<br/>’;
const PI =3;
class Hunan{ }
#新建第二个空间:第一个空间到此结束,后序内容属于第二个空间space2
namespace space2;
function display( ){
echo_ NAMESPACE_ ‘<br/>’;
const PI =3;
class Hunan{}
具体操作如下:
首先定义空间namespace space1 (这样后续所有结构性内容理论上都属于space1)
再把常量,函数和类放进来
function display(){
echo_ NAMIESPACE_ , '<br/>’;
const PI =3;
class Hunan{}
放好之后运行,运行结果如下
如果还想定义一组重名的东西,则需要新建第二个空间,第一个空间到处结束,后续内容属于第二个空间space2
(系统未提示错误,因为在一个脚本中虽然出现了同名的内容,但命名空间不同,所以可以在系统并存。所以如果一个脚本想要使用命名空间,需要在最开始定义,但是一旦定义过空间,后续可以定义n个命名空间)
4、命名空间里的内容
(1)命名空间里可以定义同名的函数,常量和类(结构);因此此类结构不允许重名,这些是命名空间规范的目标(称为空间元素)
(2)命名空间里可以有其他代码(定义除三种空间元素以外的代码执行:系统不干涉,正常执行)
如:定义结构后再定义一个变量
Namespace space
Class human{}
Function display(){}
Const PI=3.14;
$a=100;
echo $a;
5、命名空间的注意事项:命名空间的声明必须在所有代码之前。
#命名空间之前不能有任何代码
namespace spacel;
#正确
echo 'test';
namespace space1;
#错误:第一次命名空间之前不能有任何其他代码
注意:命名空间在一个脚本中只会定义一个(最开始) , 但是在讲课的时候可能会定义多个。
四:小结
1.命名空间是使用 namespace + 空间名字定义。
2.不同命名空间里可以定义同名的函数,常量和类(同名结构)。
3.命名空间里可以书写任意代码。
4.命名空间的定义必须在脚本的最前面。
5.一个脚本中通常只会定义一个空间。
6.命名空间其实就好比是磁盘上划分的不同文件夹,用来保存同名文件。