美文网首页
PHP命名空间

PHP命名空间

作者: 丿灬尘埃 | 来源:发表于2020-08-10 12:19 被阅读0次
  • 由来:

    • 为防止编程人员在项目中定义的类/函数/常量或第三方类/函数/常量之间出现重复冲突(也是价值之一),在PHP5.3中引入了命名空间这一概念。

    • 命名空间,即将代码划分成不同空间,不同空间的类名相互独立,互不冲突

  • 注意:

    • namespace 命名空间必须放在<?php 下一行,直接不能插入其他代码

    • 命名空间只对类名、函数名、常量(const定义的)有效。

    • 命名空间从始至终就是一个“内部伪概念”,只是用于解决类和变量的命名冲突,从来就跟实际文件结构没有半毛钱的关系。

  • 价值:

    • 为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。

    • 三种访问形式:(和相对路径与绝对路径相似)

      • 非限定名称访问方式

      • 限定名称访问方式

      • 完全限定名称访问方式

      <?php
      namespace app\get1
      function getUser () {
      return $username1;
      }
      namespace get2
      function getUser () {
      return $username2;
      }
      getUser(); // 非限定名称访问方式
      \app\get1\getUser(); //完全限定名称访问方式,从根路径开始,类似绝对路径
      app\get1\getUser(); //限定名称访问方式,不是从根路径开始,类似相对路径</pre>
      

    使用绝对路径调用类时顶级命名空间标识(第一个 \ )不能省略。

    class TinyRoute {
               public function foo()
               {
               return \TinyLara\TinyView\TinyView::fuck(); 
               //此处第一个‘\’不能省略
               }
           }
    

    总结:

    • namespace 仅仅是符号注册! 和目录,文件没关系,具体引入文件需要依赖于 autoload。

    • 补充autoload知识:当用户去实例化一个不存在的类/命名空间时,会触发用户已经注册的 autoload 函数,在此函数内可以进行字符串目录、文件拼接,最后require进来相应文件。此时 这个类就堂而皇之的存在了。So... 你 new 成功了。[https://lvwenhan.com/php/401.html]

    • 命名空间的引入机制

      • 空间的引入:关键字USE,注意:当移入空间后,必须要用限定名称访问方式访问引入空间里面的函数(或类、常量),不能使用非限定名称方式访问,这样会访问到当前命名空间下的函数(或类、常量)。

      • 空间类元素的引入:关键字use。注意:只能引入类,然后可以使用非限定名称访问。

相关文章

  • PHP命名空间和公共空间

    PHP命名空间 PHP 命名空间(namespace)是在PHP 5.3中加入的。PHP 命名空间可以解决以下两类...

  • php命名空间与自动加载

    命名空间(PHP 5 >= 5.3.0, PHP 7) 什么是命名空间?从广义上来说,命名空间是一种封装事物的方法...

  • PHP 新手入门指南 - 使用命名空间

    首先来了解一下命名空间: (PHP 5 >= 5.3.0, PHP 7) 什么是命名空间?从广义上来说,命名空间是...

  • php初级讲义11-命名空间

    命名空间的概念 命名空间是一种封装事物的方法。 命名空间用namespace关键字来声明。 以PHP或php为名或...

  • php命名空间

    [PHP命名空间的作用、为什么使用命名空间?] 命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或...

  • PHP命名空间

    一、命名空间概述 1、什么是命名空间 1)从广义上来说,命名空间是一种封装事物的方法。2)在很多地方都可以见到这种...

  • PHP——命名空间

    PHP命名空间的作用、为什么使用命名空间 命名空间一个最明确的目的就是解决重名问题,PHP中不允许两个函数或者类出...

  • php 命名空间

    命名空间 什么是命名空间? 广义来说,是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目...

  • PHP命名空间

    什么是命名空间 命名空间是在php5.3以后的版本引入的。命名空间是一个抽象概念,在编程中用于封装划分一组方法or...

  • PHP命名空间

    可以访问const的、函数和对象; define不可以! 1,非限定命名空间:echo a 2,限定命名空间ech...

网友评论

      本文标题:PHP命名空间

      本文链接:https://www.haomeiwen.com/subject/akzddktx.html