命名空间基础|学习笔记

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

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

相关文章
|
机器学习/深度学习 人工智能 算法
探索人工智能在医疗诊断中的应用
本文深入探讨了人工智能(AI)技术在医疗诊断领域的革新性应用,通过分析AI如何助力提高诊断准确性、效率以及个性化治疗方案的制定,揭示了AI技术为现代医学带来的巨大潜力和挑战。文章还展望了AI在未来医疗中的发展趋势,强调了跨学科合作的重要性。 ###
482 14
|
传感器 机器学习/深度学习 数据采集
2022年第十一届认证杯数学中国数学建模国际赛小美赛:C 题 对人类活动进行分类 建模方案及代码实现
本文提供了2022年第十一届认证杯数学中国数学建模国际赛小美赛C题"对人类活动进行分类"的建模方案和Python代码实现,包括数据预处理、特征提取、LSTM网络模型构建和训练评估过程。
406 11
2022年第十一届认证杯数学中国数学建模国际赛小美赛:C 题 对人类活动进行分类 建模方案及代码实现
|
SQL 缓存 数据库连接
拯救php性能的神器webman-数据库
Webman 框架与这些最佳数据库管理实践的结合,可为应用程序提供快速响应的用户体验,高吞吐量,提升应用程序的整体性能表现。在对数据库交互进行设计和开发时,持续关注性能指标和优化,确保数据库层面不会成为应用程序的瓶颈,这样便能充分利用 Webman 来提升 PHP 应用的性能。
537 4
|
机器学习/深度学习 人工智能 自然语言处理
算法金 | 秒懂 AI - 深度学习五大模型:RNN、CNN、Transformer、BERT、GPT 简介
**RNN**,1986年提出,用于序列数据,如语言模型和语音识别,但原始模型有梯度消失问题。**LSTM**和**GRU**通过门控解决了此问题。 **CNN**,1989年引入,擅长图像处理,卷积层和池化层提取特征,经典应用包括图像分类和物体检测,如LeNet-5。 **Transformer**,2017年由Google推出,自注意力机制实现并行计算,优化了NLP效率,如机器翻译。 **BERT**,2018年Google的双向预训练模型,通过掩码语言模型改进上下文理解,适用于问答和文本分类。
826 9
|
数据挖掘 Python
如何将动态IP代理转换为静态IP代理的方法与步骤
如何将动态IP代理转换为静态IP代理的方法与步骤
704 6
|
机器学习/深度学习 人工智能 自然语言处理
【AIGC】基于大语言模型构建多语种聊天机器人(基于Bloom大语言模型)
【5月更文挑战第8天】基于大语言模型Bloom构建多语种聊天机器人
355 1
|
存储 安全 编译器
【c++】类和对象(四)深入了解拷贝构造函数
朋友们大家好啊,本篇内容带大家深入了解拷贝构造函数
【c++】类和对象(四)深入了解拷贝构造函数
|
网络架构
定义vue-router的动态路由以及如何获取传过来的动态参数
定义vue-router的动态路由以及如何获取传过来的动态参数
533 1
|
存储 弹性计算 监控
企业邮箱介绍_阿里企业邮箱_阿里邮箱企业版
企业邮箱介绍_阿里企业邮箱_阿里邮箱企业版
1394 2
|
存储 SQL 运维
快速上手 Hologres(一)|学习笔记
快速学习 快速上手 Hologres(一)
1053 0
快速上手 Hologres(一)|学习笔记