简单易懂的PHP的命名空间以及配合use的使用

PHP 命名空间(namespace)是在PHP 5.3版本中加入的。

PHP 命名空间是用来解决以下两类问题的:

  1. 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。
  2. 为很长的标识符名称创建一个别名的名称,提高源代码的可读性

首先我们先建立三个文件

第一个文件 A.php,里边有两个类,命名空间namesapce是 a\b\c(注意:这里是反斜杠);

复制代码
<?php
namespace a\b\c;

class Apply{
  function get_info(){
    echo 'this is A Apply';
  }
}

class C{
  function info(){
    echo 'this is info';
  }
}
?>
复制代码

第二个文件 B.php  命名空间namespace a\b\d;

复制代码
<?php
namespace a\b\d;

class Apply{
  function get_info(){
    echo 'this is B Apply';
  }
}
?>
复制代码

第三个文件 index.php 里需要使用到上边两个文件的类。

那么现在问题来了:比方说我们现在想实例化A.php里的类,该怎么实现呢?A文件的 Apply类和B.php的Apply类重名了,直接引入使用是会报错的!

这个时候命名空间就要出场了

首先要包含这个文件 require_once('A.php');

use的用法要这样,命名空间 \ 这个空间下你要实例化类的类名。比方说我们要实例化上面的 A.php文件里的Apply类,使用 use a\b\c\Apply;  就相当于引入这个类,接下来再  new Apply();调用里边的方法,跟平常是一样的。如果要实例化类C,就 use a\b\c\C;。

posted @ 2020-03-16 15:30  77庁長  阅读(288)  评论(0编辑  收藏  举报