站长资讯网
最全最丰富的资讯网站

深入浅析php中如何声明和引入命名空间

本篇文章给大家介绍一下php如何声明命名空间、访问空间元素的三种方式,引入命名空间的方法。

深入浅析php中如何声明和引入命名空间

一、命名空间

1.1 介绍

在一个大的项目中,可能会遇到同名的类、函数、常量,为了区分这些元素,我们可以将这些元素分别存放到不同的命名空间中。 1、命名空间就是包,用来存放项目中的类、函数、常量 2、通过namespace关键字来声明命名空间

1.2 声明命名空间

例:

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

效果:

深入浅析php中如何声明和引入命名空间

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

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

效果:

深入浅析php中如何声明和引入命名空间

1.3 多级命名空间

命名空间的名字可以是多级的(子级命名空间) 例如:

<?php   namespace ChinaBeijingShunyi; // 定义命名空间   function getInfo () {     echo 'ChinaBeijingShunyi';   }   getInfo(); // 非限定名称访问    namespace USAWashington; // 定义命名空间   function getInfo () {     echo 'USAWashington';   }   USAWashington getInfo(); // 完全限定名称访问 ?>

效果:

深入浅析php中如何声明和引入命名空间

1.4 访问空间元素的三种方式

1、非限定名称访问 2、完全限定名称访问 3、限定名称访问 例:

<?php   namespace ChinaBeijingShunyi; // 定义命名空间   function getInfo () {     echo 'ChinaBeijingShunyi';   }    namespace ChinaBeijing; // 定义命名空间   function getInfo () {     echo 'ChinaBeijing';   }    getInfo();  // 非限定名称访问    ChinaBeijinggetInfo();  // 完全限定名称访问   ShunyigetInfo();  // 限定名称访问  ?>

效果:

深入浅析php中如何声明和引入命名空间

二、引入命名空间

通过use引入命名空间 完全限定名称访问元素 引入命名空间的拼接规则

公共空间+引入空间+(去除公共部分,公共部分只能留一级)空间元素

例:

<?php   namespace ChinaBeijingShunyi; // 定义命名空间   function getInfo () {     echo 'ChinaBeijingShunyi<br>';   }    namespace ChinaBeijing; // 定义命名空间   function getInfo () {     echo 'ChinaBeijing<br>';   }    use ChinaBeijingShunyi;   getInfo();    ShunyigetInfo();  ?>

效果:

深入浅析php中如何声明和引入命名空间

2.1 引入空间元素

引入类: use 引入函数:use function 引入常量: use const 例:

<?php   namespace ChinaBeijingShunyi; // 定义命名空间   class Student {   }   function getInfo() {     echo 'jdk';   }   const TYPE = 'CONST';   namespace USA; // 定义命名空间   // 引入类   use ChinaBeijingShunyiStudent;   $stu = new Student();   var_dump($stu);   echo '<br>';   // 引入函数   use function ChinaBeijingShunyigetInfo;   getInfo();   echo '<br>';    // 引入常量   use const ChinaBeijingShunyiTYPE;   echo TYPE; ?>

效果:

深入浅析php中如何声明和引入命名空间

2.2 给类、函数取别名

如果引入的类和函数与当前空间的类和函数名称相同,需要给引入的类和函数取别名。 通过as取别名 例:

<?php   namespace ChinaBeijingShunyi; // 定义命名空间   class Student {   }       namespace USA; // 定义命名空间   class Student {    }   use ChinaBeijingShunyiStudent as ChinaStudent;   $stu=new Student;   var_dump($stu);   echo '<br>';   $stu1=new ChinaStudent;   var_dump($stu1); ?>

效果:

深入浅析php中如何声明和引入命名空间

2.3 公共空间

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

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

效果:

深入浅析php中如何声明和引入命名空间

2.4 命名空间注意事项

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

推荐学习:《PHP视频教程》

赞(0)
分享到: 更多 (0)
网站地图   沪ICP备18035694号-2    沪公网安备31011702889846号