PHP命名空间 namespace 及导入 use 的详细用法指南

阅读量:31
2021-04-18

在PHP中,出现同名函数或是同名类是不被允许的。为防止编程人员在项目中定义的类名或函数名出现重复冲突,在PHP5.3中引入了命名空间这一概念。

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

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

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!12345678910111213141516171819202122232425

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

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

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

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();           //报错

上面是我整理给大家的PHP命名空间 namespace 及导入 use 用法,希望今后会对大家有帮助。

相关文章:

php常用的魔术方法

PHP常用函数

php命名空间的设计思想和缺点

以上就是PHP命名空间 namespace 及导入 use 的详细用法指南的详细内容,更多请关注星网无限其它相关文章!

声明:本文原创发布星网无限,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@处理

THE END

发表评论

相关推荐

  • php getdate函数怎么用

    php getdate函数用于返回当前本地的“日期/时间”的“日期/时间”信息,其语法为“getdate(timestamp)”,该函数会返回带有与时间 ...

    阅读量:99
    2021-04-19
  • column的10篇内容推荐

    column-fill属性会将不同高度的指定列以高度差最小化的方式进行对齐,这里我们就来看一下CSS3的column-fill属性对齐列内容高 ...

    阅读量:100
    2021-04-19
  • PHPMailer 中文使用说明小结_PHP教程

    A开头: $AltBody --属性 出自:PHPMailer : $AltBody 文件:class.phpmailer .php 说明:该属性的设置是在邮件正文不支持HT ...

    阅读量:133
    2021-04-19
  • php date与gmdate的获取日期的区别_PHP教程

    date -- 格式化一个本地时间/日期   gmdate -- 格式化一个 /UTC 日期/时间,返回的是格林威治标准时(GMT)。   举个 ...

    阅读量:115
    2021-04-19
  • php 正确解码javascript中通过escape编码后的字符_PHP教程

    这是很久以前收集的一个,不知道谁写的了,但经过测试没有问题~ JavaScript代码

    阅读量:114
    2021-04-19