文章详情

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

请输入下面的图形验证码

提交验证

短信预约提醒成功

namesapce命名空间的示例分析

2023-06-06 14:02

关注

这篇文章主要介绍了namesapce命名空间的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

1.命名空间的使用目的

  在PHP中函数、类、常量是不允许同名的。为了解决这三者的同名问题,所以出现了命名空间,故而命名空间只影响类、函数、常量(const)。

2.命名空间的使用格式

 a.可以命名一个空间

 <?php     namespace space1;//namespace关键字 +空间名      代码; ?>

b.也可以同时命名多个空间

<?php     namespace space1;//namespace关键字 +空间名      代码1;     namespace space2;     代码2;     namespace space3;     代码3;     .......//代码1,代码2,代码3,可相同亦可不同     ....... ?>

注意事项:如果一个php文件中,第一个空间的定义义必须放在第1行。不过凡事都有例外,在声明命名空间之前还有唯一合法的代码是用于定义源文件编码方式的 declare 语句。所有非 PHP 代码包括空白符都不能出现在命名空间的声明之前。例如下面的代码会报错。

<html><?php    namespace space1;  namespace space2;?></html>

3.命名空间的访问

 命名空间的访问分为:非限定空间访问,限定空间访问,完全限定访问。

  a.非限定空间访问

<?phpnamespace space3;   function f1(){   echo "space3";   }namespace space3\space2;//其中"\"代表space2是space3的子空间,同理space3是space2的父空间。   function f1(){     echo "space2";     }namespace space3\space2\space1;   function f1(){     echo "space1";     }   f1();//对上面空间成员进行访问,输出结果为:space1?>

b.限定空间访问

<?phpnamespace space2\space1;    function f1(){     echo "space1";      }namespace space2;function f1(){     echo "space2";      }   f1();//此时输出的是 space2   space1\f1();//此时输出的是space1?>

c.完全限定空间访问

<?phpnamespace space3;   function f1(){   echo "space3";   }namespace space2;      function f1(){     echo "space2";     }namespace space1;     function f1(){     echo "space1";     }   f1();//对上面空间成员进行访问,输出结果为:space1   \space3\f1();//对space3进行访问,输出结果为:space3   \space2\f1();//对space2进行访问,输出结果为:space2?>

4.引入空间成员

    a.use 空间名\空间名 【as 别名】:将指定空间引入到当前空间。同可以使用as关键字为被引入的空间起个别名

    b.use 空间名\空间名\成员类 【as 别名】:将指定的空间中的成员引入到当前空间,引入空间成员只能引入类

5.一些小情况

   一旦命名空间出现,那么空间元素(类、常量、函数)的访问就被限定在空间内,如果使用非限定空间访问,系统会出现以下解析逻辑(限定名称或完全限定名称是直接按照路径准确查找)

            系统常量,系统函数如果找不到,会全局空间去找

             系统类是不会自动去全局空间去找的(报错,提示空间找不到)

<?phpnamespace space3;   function f1(){   echo "space3";   }//当前所有访问如果使用非限定名称都代表访问当前空间内的元素f1();//访问space3下f1()函数//想要访问函数define('PI',3.14);//space3下没有define()函数,全局函数有//想要访问系统常量echo PHP_VERSION; //space3下没有define()函数,全局函数有//想要访问类//错误方案//$m=new Mysqli('localhost','root','root');//系统会提示类不存在//正确方案$m= new \Mysqli('localhost','root','root');?>

感谢你能够认真阅读完这篇文章,希望小编分享的“namesapce命名空间的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

阅读原文内容投诉

免责声明:

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

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

软考中级精品资料免费领

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

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

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

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

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

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

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