编程之路之php核心编程命名空间详解

一、命名空间概述

1、什么是命名空间?

  1. 命名空间是一种封装事物的方法;例如:函数、类、方法等。
  2. 命名空间作用:用来解决类名或应用程序名冲突问题
  3. 举例:项目中会用到第三方类,第三方类加载进来后,可能与项目中的类名冲突。

 

2、定义命名空间的要求

  • 使用namespace关键字,来声明一个命名空间;
  • 所有代码都可以存在于命名空间中,但是,只有三种代码会受到空间影响:类、常量(const)、函数
  • 除了类、常量、函数代码外,其它代码可以写在空间中,但不受空间影响。其它代码相当于”全局代码”。全局代码可以在”任何地方”都能直接使用。
  • 全局代码所在的空间,称为”根空间”、”全局空间”,相当于windows系统的”桌面”。
  • 声明命名空间的语法,是PHP脚本的第1行代码;空格、空行都不可以;
  • 命名空间是虚拟的空间。

 

3、定义命名空间语法格式

 

4、举例:定义单个命名空间

 

二、定义子命名空间

1、描述

文件夹可以有子目录的情况,命名空间也有子空间情况。

目录的分割符号正斜杠(/),空间路径的分割符是反斜杠(\)。

举例:App\Home\Controller。

2、举例说明

 

三、同一文件同时定义多个命名空间

1、简单组合语法

 

2、大括号语法

提示:用大括号把空间的代码包起来。

 

3、不包含在命名空间中的代码

如果一个文件用大括号语法定义多个命名空间,如果要写全局代码,还不想把全局代码加到某个命名空间中,该怎么写?

 

四、使用命名空间

1、文件系统中访问文件的方式

  • 相对文件名。如果访问 a.txt 文件,它的完整的访问路径是:curDir/a.txt
  • 相对路径名。如果访问 a/a.txt 文件,它的完整的访问路径是:curDir/a/a.txt
  • 绝对文件名。如果访问 /a/a.txt文件,它的完整的访问路径是:/a/a.txt

2、访问命名空间中元素的方式

  • 非限定名称(不含前缀)。如果访问 $obj = new Student(),它的完整路径是:$obj = new curSpace\Student()
  • 限定名称(含有相对前缀)。如果访问 $obj=new Home\Student()
    1. 它的完整路径是:$obj = new curSpace\Home\Student()
  • 完全限定名称(含有绝对前缀)。
    1. 如果访问 $obj = new \App\Home\Controller\Student()
    2. 它的完整访问路径:$obj = new \App\Home\Controller\Student()

3、举例说明

 

五、namespace关键字和魔术常量__NAMESPACE__

1、namespace关键字

  • namespace含义之一:声明空间关键字;
  • namespace含义之二:可以用来直接代码当前空间名,相当于self关键字。

 

2、魔术常量__NAMESPACE__

描述:获取当前命名空间的字符串名称。

 

 

六、命名空间的别名/导入

1、描述

  • 首先导入空间中的类,常量和函数不能导入。
  • 使用use关键字来导入空间中的类。例如:use App\Home\Controller\Student
  • 使用use关键字来导入空间名。例如:use App\Home\Controller;
  • 使用as关键字,可以给空间或类起个别名。
    1. 给空间起别名:use App\Home\Controller as Controller
    2. 给空间中的类起别名:use App\Home\Controller\Student as Student2

2、举例说明

 

我是小咖

发个邀请:
如果你正好想学习php,可以与我一起交流,我的VX:feilueze333。下面资料免费赠送。

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值