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

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

概述深入浅析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中如何声明和引入命名空间全部内容,希望文章能够帮你解决深入浅析php中如何声明和引入命名空间所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/997403.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存