文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

php中怎么声明和引入命名空间

2023-06-20 18:11

关注

这篇文章给大家介绍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 China\Beijing\Shunyi; // 定义命名空间  function getInfo () {    echo 'China\Beijing\Shunyi';  }  getInfo(); // 非限定名称访问  namespace USA\Washington; // 定义命名空间  function getInfo () {    echo 'USA\Washington';  }  \USA\Washington\ getInfo(); // 完全限定名称访问?>

效果:

php中怎么声明和引入命名空间

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

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

效果:

php中怎么声明和引入命名空间

二、引入命名空间

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

效果:

php中怎么声明和引入命名空间

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

效果:

php中怎么声明和引入命名空间

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

效果:

php中怎么声明和引入命名空间

2.3 公共空间

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

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

效果:

php中怎么声明和引入命名空间

2.4 命名空间注意事项

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

关于php中怎么声明和引入命名空间就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯