简单易懂的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;。

记得点赞收藏关注我♪(^∀^●)ノ,让小哥哥带你闯荡互联网开发的世界♥♥♥♥♥

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...