[PHP] 关键字 use 的使用方法

  比方说建三个文件。

- 第一个文件 A.php,里边有两个类,命名空间是 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 命名空间 a\b\d;

<?php
namespace a\b\d;

class Apply{
  function get_info(){
    echo 'this is B Apply';
  }
}
- 第三个文件 index.php ,用来使用上边两个文件的类。

  比方说我们现在想实例化A.php里的类,该怎么实现呢?

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

        然后 use a\b\c;? 还是a\b\c\A? 起初我也是这么认为的。其实这是错的,use应该是这样的,命名空间\这个空间下你要实例化类的类名。比方说我们要实例化 A.php里的Apply类,那么 use a\b\c\Apply; 这就相当于引入这个类,接下来再 new Apply();调用里边的方法,跟平常是一样的。如果要实例化类C,就 use a\b\c\C;

  注意:use不等于require_once或者include,use的前提是已经把文件包含进当前文件。

       顺便提一句,在MVC模式中,类名和文件名是相同的,所以use的时候会让不了解的人以为use后面跟的是文件名,我之前就这么以为的。其实use的还是类名。

       有的人可能问了,那我不同的命名空间下,有相同的类名,在同一个文件中使用怎么办?比方说我们上边的index.php,把A.php和B.php都包含进来,然后new Apply();这个时候是会报错的,解决方案就是起别名:

        比方说 use a\b\d\Apply as b; 此时我们new 的时候不应该写成 new Apply();而是new b();这样就不会发生冲突了。

 

【转自https://www.cnblogs.com/zhb-php/p/5040594.html】感谢博主的总结 ^ ^

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值