2.3 命名空间

命名空间

命名空间是一种解决项目中的各种类库之间命名冲突的方案,类似于在磁盘中划分一层层的目录,将不同的软件安装到不同的目录,从而避免文件重名的情况。

  • 命名空间
  • namespace01.php
  • namespace02.php
  • 非限定名称访问
  • 限定名称访问
  • 完全限定名称访问

定义

<?php
namespace app;

...

定义子命名空间

namespace app\index\controller

...

index是app的子空间,controller是index的子空间,so在创建controller子空间时,会同时创建app和index命名空间。
** 使用**
namespace01.php

<?php
namespace one;

$name = 'Tom';
const PI = 3.14;
echo PI;

namespace02.php

<?php
namespace two;

require './namespace01.php';
echo $name,PI;

访问namespace02.php的结果如下:
在这里插入图片描述
非限定名称访问
在one空间中的PI被输出了而two空间中PI无值,这就属于非限定名称访问。

限定名称访问
语法:“子空间名称\空间成员名称”,表示从当前空间开始,访问其子空间的成员。这种方式只能用于访问当前空间的子空间成员,不能访问其父空间的成员。
将namespace01.php中的"namespce one"修改为"namespace two\one".

namespace02.php

<?php
namespace two;

require './namespace01.php';
echo $name,one\PI;

在这里插入图片描述
完全限定名称访问
语法:"\空间名称\空间成员名称";可以在任意的命名空间中访问从“\”根命名空间开始的任意空间内的成员。
namspace01.php

<?php
namespace one;

$name = 'Tom';
const PI = 3.14;
echo PI;

namspace02.php

<?php
namespace one;

$name = 'Tom';
const PI = 3.14;
echo PI;

结果如下:
在这里插入图片描述
命名空间中全局空间的使用

<?php
namespace common;

const PHP_VERSION = '5.6';
echo PHP_VERSION;  //访问空间成员: 5.6
echo \PHP_VERSION;  //访问全局成员: 7.0.9

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值