文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php教程>深入浅析php中如何声明和引入命名空间

深入浅析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();
?>

效果:

1.png

利用\命名空间\可进入某个命名空间中调用方法。 例:

<?php
 namespace China; // 定义命名空间
 function getInfo () {
   echo '我是中国人';
 }
 getInfo();

 namespace USA; // 定义命名空间
 function getInfo () {
   echo '我是美国人';
 }
 getInfo();
 \China\ getInfo();
?>

效果:

2.png

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(); // 完全限定名称访问
?>

效果:

3.png

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();  // 限定名称访问

?>

效果:

4.png

二、引入命名空间

通过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();

?>

效果:

5.png

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;
?>

效果:

6.png

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);
?>

效果:

7.png

2.3 公共空间

如果一个页面没有namespace声明空间这个页面的元素在公共空间下 公共空间用\表示 例:

<?php
 function getInfo() {
   echo '李白<br>';
 }
 \getInfo();

?>

效果:

8.png

2.4 命名空间注意事项

1、命名空间只能存放类、函数、const常量。 2、第一个namespace前面不能有任何的代码,空白字符,header()也不行。 3、包含文件不影响当前的命名空间。

以上就是深入浅析php中如何声明和引入命名空间的详细内容,更多请关注php爱好者其它相关文章!

相关阅读更多 +
最近更新
排行榜 更多 +
元梦之星最新版手游

元梦之星最新版手游

棋牌卡牌 下载
我自为道安卓版

我自为道安卓版

角色扮演 下载
一剑斩仙

一剑斩仙

角色扮演 下载