深入浅析php中如何声明和引入命名空间
时间:2021-08-09
来源:互联网
标签:
今天PHP爱好者给大家带来本篇文章给大家介绍一下php如何声明命名空间、访问空间元素的三种方式,引入命名空间的方法。希望对大家有所帮助。

一、命名空间
1.1 介绍
在一个大的项目中,可能会遇到同名的类、函数、常量,为了区分这些元素,我们可以将这些元素分别存放到不同的命名空间中。 1、命名空间就是包,用来存放项目中的类、函数、常量 2、通过namespace关键字来声明命名空间
1.2 声明命名空间
例:
<?php
namespace China; // 定义命名空间
function getInfo () {
echo '我是中国人';
}
getInfo();
namespace USA; // 定义命名空间
function getInfo () {
echo '我是美国人';
}
getInfo();
?>
效果:

利用\命名空间\可进入某个命名空间中调用方法。
例:
<?php
namespace China; // 定义命名空间
function getInfo () {
echo '我是中国人';
}
getInfo();
namespace USA; // 定义命名空间
function getInfo () {
echo '我是美国人';
}
getInfo();
\China\ getInfo();
?>
效果:

1.3 多级命名空间
命名空间的名字可以是多级的(子级命名空间) 例如:
<?php
namespace China\Beijing\Shunyi; // 定义命名空间
function getInfo () {
echo 'China\Beijing\Shunyi';
}
getInfo(); // 非限定名称访问
namespace USA\Washington; // 定义命名空间
function getInfo () {
echo 'USA\Washington';
}
\USA\Washington\ getInfo(); // 完全限定名称访问
?>
效果:

1.4 访问空间元素的三种方式
1、非限定名称访问 2、完全限定名称访问 3、限定名称访问 例:
<?php
namespace China\Beijing\Shunyi; // 定义命名空间
function getInfo () {
echo 'China\Beijing\Shunyi';
}
namespace China\Beijing; // 定义命名空间
function getInfo () {
echo 'China\Beijing';
}
getInfo(); // 非限定名称访问
\China\Beijing\getInfo(); // 完全限定名称访问
Shunyi\getInfo(); // 限定名称访问
?>
效果:

二、引入命名空间
通过use引入命名空间
完全限定名称访问元素
引入命名空间的拼接规则
公共空间+引入空间+(去除公共部分,公共部分只能留一级)空间元素
例:
<?php
namespace China\Beijing\Shunyi; // 定义命名空间
function getInfo () {
echo 'China\Beijing\Shunyi<br>';
}
namespace China\Beijing; // 定义命名空间
function getInfo () {
echo 'China\Beijing<br>';
}
use China\Beijing\Shunyi;
getInfo();
Shunyi\getInfo();
?>
效果:

2.1 引入空间元素
引入类: use 引入函数:use function 引入常量: use const 例:
<?php
namespace China\Beijing\Shunyi; // 定义命名空间
class Student {
}
function getInfo() {
echo 'jdk';
}
const TYPE = 'CONST';
namespace USA; // 定义命名空间
// 引入类
use China\Beijing\Shunyi\Student;
$stu = new Student();
var_dump($stu);
echo '<br>';
// 引入函数
use function China\Beijing\Shunyi\getInfo;
getInfo();
echo '<br>';
// 引入常量
use const China\Beijing\Shunyi\TYPE;
echo TYPE;
?>
效果:

2.2 给类、函数取别名
如果引入的类和函数与当前空间的类和函数名称相同,需要给引入的类和函数取别名。 通过as取别名 例:
<?php
namespace China\Beijing\Shunyi; // 定义命名空间
class Student {
}
namespace USA; // 定义命名空间
class Student {
}
use China\Beijing\Shunyi\Student as ChinaStudent;
$stu=new Student;
var_dump($stu);
echo '<br>';
$stu1=new ChinaStudent;
var_dump($stu1);
?>
效果:

2.3 公共空间
如果一个页面没有namespace声明空间这个页面的元素在公共空间下
公共空间用\表示
例:
<?php
function getInfo() {
echo '李白<br>';
}
\getInfo();
?>
效果:

2.4 命名空间注意事项
1、命名空间只能存放类、函数、const常量。 2、第一个namespace前面不能有任何的代码,空白字符,header()也不行。 3、包含文件不影响当前的命名空间。
以上就是深入浅析php中如何声明和引入命名空间的详细内容,更多请关注php爱好者其它相关文章!
-
电脑出现normal.dotm错误怎么办?解决方法是什么? 时间:2025-12-15 -
normal.dotm在哪个文件夹里 如何删除normal模板 时间:2025-12-15 -
d3dll.dll不能启动怎么办?怎么修复? 时间:2025-12-15 -
psrpc.dll缺失的原因及解决方法 时间:2025-12-15 -
JavaScript插件Lightbox.js用法详解 时间:2025-12-15 -
isalpha()函数在Python中的用法详解 时间:2025-12-15
今日更新
-
学习通网页版访问线路全新升级-学习通网页版秒速直达课程界面
阅读:18
-
即梦AI官方认证网页入口无广告秒速使用-即梦AI官方网页在线极速体验
阅读:18
-
向欧易客服反馈问题必备信息清单 高效解决指南
阅读:18
-
虫虫漫画入口全端兼容-虫虫漫画入口一键跨端追更
阅读:18
-
劈叉是什么梗?揭秘网络热词劈叉的爆笑来源和用法,看完秒懂!
阅读:18
-
163邮箱登录入口-网易163邮箱网页版快速登录
阅读:18
-
欧易邮件客服联系方式查询及官方客服邮箱地址
阅读:18
-
233乐园极速下载入口-233乐园官方正版免费安全下载
阅读:18
-
mcjs网页版在线畅玩-mcjs秒玩直达入口
阅读:18
-
百度云盘网页版直达入口-百度网盘网页版极速登录入口
阅读:18










