zoukankan      html  css  js  c++  java
  • namespace命名空间

    在讨论如何使用命名空间之前,必须了解 PHP 是如何知道要使用哪一个命名空间中的元素的。可以将 PHP 命名空间与文件系统作一个简单的类比。在文件系统中访问一个文件有三种方式:

    1. 相对文件名形式如foo.txt。它会被解析为 currentdirectory/foo.txt,其中 currentdirectory 表示当前目录。因此如果当前目录是 /home/foo,则该文件名被解析为/home/foo/foo.txt
    2. 相对路径名形式如subdirectory/foo.txt。它会被解析为 currentdirectory/subdirectory/foo.txt
    3. 绝对路径名形式如/main/foo.txt。它会被解析为/main/foo.txt

    PHP 命名空间中的元素使用同样的原理。例如,类名可以通过三种方式引用:

    1. 非限定名称,或不包含前缀的类名称,例如 $a=new foo();foo::staticmethod();。如果当前命名空间是 currentnamespace,foo 将被解析为 currentnamespacefoo。如果使用 foo 的代码是全局的,不包含在任何命名空间中的代码,则 foo 会被解析为foo 警告:如果命名空间中的函数或常量未定义,则该非限定的函数名称或常量名称会被解析为全局函数名称或常量名称。详情参见 使用命名空间:后备全局函数名称/常量名称
    2. 限定名称,或包含前缀的名称,例如 $a = new subnamespacefoo();subnamespacefoo::staticmethod();。如果当前的命名空间是 currentnamespace,则 foo 会被解析为 currentnamespacesubnamespacefoo。如果使用 foo 的代码是全局的,不包含在任何命名空间中的代码,foo 会被解析为subnamespacefoo
    3. 完全限定名称,或包含了全局前缀操作符的名称,例如, $a = new currentnamespacefoo();currentnamespacefoo::staticmethod();。在这种情况下,foo 总是被解析为代码中的文字名(literal name)currentnamespacefoo

    命名空间  就是一种区分方式,如:两个人,他俩性别都为男,但是长相差异很大,如何区分他俩?这时就用到了命名空间

      第一个男性为张三,第二个男性为李四

      这就是命名 

      php中的namespace命名相同。如两个类(方法、函数)名称相同,但里面内容不同,这样的类(方法、函数)文件定义时,在文件

        <?php

          namespace  北京/朝阳区/张三

          /*使用 use 语句来导入一个命名空间*/

          class one {}

          function one {}

        ?>

        <?php

          namespace  北京/昌平区/张三

          /*使用 use 语句来导入一个命名空间*/

          class two {}

          function two{}

        ?>

     调取这两个类(方法、函数)的时候

        <?php

          $a = new 北京/朝阳区/张三;

        ?>

        使用 use 语句来导入一个命名空间

  • 相关阅读:
    如何使网站不出现从客户端(:)中检测到有潜在危险的 Request.Path 值这样类似的提示
    layui下select下拉框不显示或没有效果
    video
    各个平台的mysql重启命令
    微信开放平台 redirect_uri参数错误
    JS中setTimeout()的用法详解
    验证视图状态MAC失败的解决办法
    The 'microsoft.jet.oledb.4.0' provider is not registered on the local machin
    一个Nginx部署多个vue前端项目总结
    Java之HttpClient调用WebService接口发送短信源码实战
  • 原文地址:https://www.cnblogs.com/chen-lhx/p/3779812.html
Copyright © 2011-2022 走看看