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

    1.命名空间,即将代码划分成不同空间,不同空间的类名相互独立,互不冲突。一个php文件中可以存在多个命名空间,第一个命名空间前不能有任何代码。内容空间声明后的代码便属于这个命名空间,例如:

    <?php
        echo 111;       //由于namespace前有代码而报错
        namespace Teacher;
        class Person{
            function __construct(){
                echo 'Please study!';
            }
        }

    2.调用不同空间内类或方法需写明命名空间。例如:

    <?php
        namespace Teacher;
        class Person{
            function __construct(){
                echo 'Please study!<br/>';
            }
        }
        function Person(){
            return 'You must stay here!';
        };
        namespace Student;
        class Person{
            function __construct(){
                echo 'I want to play!<br/>';
            }
        }
        new Person();                    //本空间(Student空间)
        new TeacherPerson();           //Teacher空间
        new StudentPerson();           //Student空间
        echo TeacherPerson();          //Teacher空间下Person函数
        //输出:
        I want to play!
        Please study!
        I want to play!
        You must stay here!

    3.在命名空间内引入其他文件不会属于本命名空间,而属于公共空间或是文件中本身定义的命名空间。例:

    首先定义一个1.php和2.php文件:

    <?php     //1.php
    class Person{
        function __construct(){
                echo 'I am one!<br/>';
            }
    }
    <?php
    namespace Newer;
    require_once './1.php';
    new Person();      //报错,找不到Person;
    new Person();     //输出 I am tow!
    <?php     //2.php
    namespace Two
    class Person{
        function __construct(){
                echo 'I am tow!<br/>';
            }
    }
    <?php
    namespace New;
    require_once './2.php';
    new Person();      //报错,(当前空间)找不到Person;
    new Person();     //报错,(公共空间)找不到Person;
    new TwoPerson();  //输出 I am tow!;

    4.下面我们来看use的使用方法:(use以后引用可简写)

        namespace SchoolParents;
        class Man{
            function __construct(){
                echo 'Listen to teachers!<br/>';
            }
        }
        namespace SchoolTeacher;
        class Person{
            function __construct(){
                echo 'Please study!<br/>';
            }
        }
        namespace SchoolStudent;
        class Person{
            function __construct(){
                echo 'I want to play!<br/>';
            }
        }
        new Person();                   //输出I want to play!
        new SchoolTeacherPerson();   //输出Please study!
        new TeacherPerson();           //报错
        ----------
        use SchoolTeacher;  
        new TeacherPerson();           //输出Please study!    
        ----------
        use SchoolTeacher as Tc;  
        new TcPerson();           //输出Please study!  
        ----------
        use SchoolTeacherPerson; 
        new Person();           //报错
        ----------
        use SchoolParentMan; 
        new Man();           //报错
  • 相关阅读:
    学Maven,这篇万余字的教程,真的够用了!
    15 个优秀开源的 Spring Boot 学习项目,一网打尽!
    Spring Boot2 系列教程(三十)Spring Boot 整合 Ehcache
    800java面试题
    Nginx开发从入门到精通
    曹工说mini-dubbo(1)--为了实践动态代理,我写了个简单的rpc框架
    redis好书推荐
    一步一步学solr--windows下solr5.4.0环境搭建
    Redis
    8 个最好的 jQuery 树形 Tree 插件
  • 原文地址:https://www.cnblogs.com/yszr/p/7512454.html
Copyright © 2011-2022 走看看