php中的命名空间

命名空间只对类,函数,conts定义的常量起作用

在命名空间内三种方式访问元素
(1)非限定名称 访问最近的命名空间(就近访问上边与其挨着最近空间)
(2)完全限定名称 相当于绝对路径引入
(3)限定名称 相当于相对路径引入
元素引入
use 空间\...\元素;
空间引入 可以解决完全限定名称访问元素的繁琐性,但是还需要通过“限定名称”方式访问,仍然不够简便,如果引入空间的元素是类,就可以直接把这个类引入到当前空间,使用的时候也就可以通过“非限定名称”方式访问,非常便捷。
(只能做“类元素”引入,函数和常量不可以)

如果引入处的类和被引入的有重合就会出现错误。

别名使用
use 空间\元素 as 别名;
把其他空间的一个“类元素”引入到当前空间,如果当前空间也有一个“同名”的类元素,则引入元素与当前空间元素就会有冲突,为了避免冲突产生,可以引入空间元素起一个别名。

公共空间
一个php文件里边每天namespace关键字声明,则该文件的元素都存在于“公共空间”
访问公共空间的元素统一设置为 \元素
举例:
两个文件: a.php b.php (a.php include引入b.php)
1 a.php有namespace b.php没有 (b.php处于公共空间)


重点记忆: 被引入的空间不会对当前空间有任何的影响。
先获取当前空间,再获取公共空间

6、命名空间使用注意

1)声明命名空间的当前脚本的第一个namespace关键字前面不能有任何代码(header头代码也要写在下边)
2)命名空间是虚拟抽象的空间,不是真实存在的目录
3)相同请求的不同文件的同名空间里边不能有同名元素
有许多文件可以使用相同名称的命名空间
如果一个请求把它们都引进来了,则他们的同类型元素不能出现多个同名称的
例如:有四个文件分别是index.php,1.php,2.php,3.php,namespace.php,其内容分别为
(1)
namespace.php
<?php
usename Home;
const a = 10;
?>
1.php
<?php
require("namespace.php");
echo Home/a;
?>
2.php
<?php
require("namespace.php");
echo Home/a;
?>
3.php
<?php
require("namespace.php");
echo Home/a;
?>
index.php
<?php
require("1.php");
require("2.php");
require("3.php");
?>


namespace.php
<?php
usename Home;
const a = 10;
?>
1.php
<?php
echo Home/a;
?>
2.php
<?php
echo Home/a;
?>
3.php
<?php
echo Home/a;
?>
index.php
<?php
require("1.php");
require("2.php");
require("3.php");
?>
如果是这样的话,就能输出正确的结果




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值