zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    HDU 1863 畅通工程
    基于Platinum库的DMS实现(android)
    编写一个程序,输入月份号,输出该月的中文名和英文名。
    Android系统移植与调试之------->如何修改Android设备的开机第一阶段Logo
    利用面向对象解母牛生小牛问题
    Java String.replace()方法
    Android系统移植与调试之------->如何修改Android设备的开机第二阶段Logo
    Linux网络设备驱动架構學習(三)
    把给定的字符串解析为Date对象
    git使用三把斧
  • 原文地址:https://www.cnblogs.com/ar13/p/9028191.html
Copyright © 2011-2022 走看看