命名空间基础|学习笔记

简介: 快速学习命名空间基础,了解命名空间的基本语法,掌握命名空间的限制逻辑和基本应用。

开发者学堂课程【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.命名空间其实就好比是磁盘上划分的不同文件夹,用来保存同名文件。

相关文章
|
8月前
|
C++
C++命名空间学习应用案例
C++中的命名空间示例:通过`my_namespace`防止命名冲突,包含`print_message()`函数,在`main()`中调用时需加上命名空间前缀`my_namespace::`。
50 3
|
8月前
|
C++
【C++ 命名空间】C++ 命名空间与嵌套命名空间入门指南
【C++ 命名空间】C++ 命名空间与嵌套命名空间入门指南
212 0
|
6月前
|
小程序 C++
【C++入门 二 】学习使用C++命名空间及其展开
【C++入门 二 】学习使用C++命名空间及其展开
|
7月前
|
人工智能 安全 编译器
【C++入门】—— C++入门 (上)_命名空间
【C++入门】—— C++入门 (上)_命名空间
72 2
|
8月前
|
编译器 C++
C++入门(命名空间)
C++入门(命名空间)
|
8月前
|
设计模式 Java 编译器
【C++入门到精通】 C++入门—命名空间
前面我们学习了C语言,并且知道了C语言的基础语法与用途。接下来一段时间我们会再来学习一下基于C语言并且根据C语言改造的一门新的语言—C++ 
86 4
|
编译器 C语言 C++
【C++】入门 --- 命名空间(一)
【C++】入门 --- 命名空间(一)
70 0
|
C++
【C++】入门 --- 命名空间(二)
【C++】入门 --- 命名空间(二)
82 0
|
SQL PHP 数据库
命名空间应用|学习笔记
快速学习命名空间应用,根据实际的开发需求,设定合适的命名空间进行管理
命名空间应用|学习笔记
|
PHP 开发者
命名空间总结|学习笔记
快速学习命名空间总结
命名空间总结|学习笔记

相关实验场景

更多