加入收藏 | 设为首页 | 会员中心 | 我要投稿 南阳站长网 (https://www.0377zz.cn/)- 专有云、图像技术、AI硬件、云计算、数据集成!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP命名空间namespace定义及导入use用法详解

发布时间:2022-07-15 11:27:45 所属栏目:PHP教程 来源:互联网
导读:这篇文章主要介绍了PHP命名空间namespace定义及导入use用法,结合实例形式详细分析了php中命名空间namespace的功能、定义及导入use相关使用方法与操作技巧,需要的朋友可以参考下。 本文实例讲述了PHP命名空间namespace定义及导入use用法,分享给大家供大家参
  这篇文章主要介绍了PHP命名空间namespace定义及导入use用法,结合实例形式详细分析了php中命名空间namespace的功能、定义及导入use相关使用方法与操作技巧,需要的朋友可以参考下。
 
  本文实例讲述了PHP命名空间namespace定义及导入use用法,分享给大家供大家参考,具体如下:
 
  在PHP中,出现同名函数或是同名类是不被允许的,为防止编程人员在项目中定义的类名或函数名出现重复冲突,在PHP5.3中引入了命名空间这一概念。
 
  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();   //报错

(编辑:南阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读