• php的命名空间实例


    php的命名空间实例

    什么是命名空间?从广义上来说,命名空间是一种封装事物的方法。在很多地方都可以见到这种抽象概念。例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色。具体举个例子,文件 foo.txt 可以同时在目录/home/greg 和 /home/other 中存在,但在同一个目录中不能存在两个 foo.txt 文件 -- php手册

    namespace 的定义和使用

    -定义

    <?php  // t1.php
        
    namespace demoindex;
    
    Class Test {
        // 执行自动调用
        public function __construct(){
            echo '1';
        }
    }
    

    <?php // t2.php
    
    namespace demoindex;
    
    include_once './t1.php';
    
    $demo = new Test();
    

    namespace 用来定义一个命名空间,由上面可以看出:t1|t2都是在demoindex 空间中, 可以用来共用类Test()

    我们尝试将t2.php 删除其命名空间
    t2.php 修改为

    <?php 
    
    use demoindex;  // 此时可以忽略
    
    include_once './t1.php';
    
    $demo = new demoindexTest();
    

    实际上她会去调用 命名空间下的类名,使用反斜杠,提供这种使用命名空间的方式,

    来杜绝在使用类的时候出现混合类重复的现象|use 在这里只是申明解析的作用,具体请看下面

    我们再次修改t1.php - t2.php

    <?php // t1.php
    namespace demoindex;
    
    Class Test {
    
        // 执行自动调用
        public function __construct(){
            echo '1';
        }
    }
    
    namespace demoindex2;
    
    Class Test {
    
        // 执行自动调用
        public function __construct(){
            echo '<br/>2';
        }
    }
    

    <?php  // t2.php
    
    use demoindex as t1;
    use demoindex2 as t2;
    
    include_once './t1.php';
    
    $demo1 = new t1Test();
    $demo2 = new t2Test();
    

    好,你可以看出,在t2中,我修改了use | demo 的写法

    实际上,use 承接了一个声明解析的效果,我们在demo中调用类的时候,省去了一系列书写重复;

    as 相当于等于的意思,使用t1 代表的就是 demoindex

    引用类中的写法呢,说明了在类名即使相同,但是命名空间不同的清空下,即使是重复,也不会报错。就相当于我们访问的是两个不同文件夹中的相同名字的子文件,并不会造成不能重复命名的问题

    学习地址-》 http://www.cnblogs.com/yjf512/archive/2013/05/14/3077285.html

  • 相关阅读:
    浏览器 cookie
    c# 委托
    并不对劲的loj3106:p5339:[TJOI2019]唱、跳、rap 和篮球
    并不对劲的loj3095:p5329:[SNOI2019]字符串
    并不对劲的CF1365D&E&F: Solve The Maximum Subsequence Again
    并不对劲的loj3123:p5404[CTS2019]重复
    并不对劲的loj3046:p5327:[ZJOI2019]语言
    并不对劲的loj3115:p5362:[SDOI2019]连续子序列
    并不对劲的loj3113:p5360:[SDOI2019]热闹的聚会与尴尬的聚会
    并不对劲的bzoj2521:p5039:[SHOI2010]最小生成树
  • 原文地址:https://www.cnblogs.com/ar13/p/9028191.html
Copyright © 2020-2023  润新知