PHP命令空间namespace及use的用法实践总结

1 .use不等于require_once或者include,use的前提是已经把文件包含进当前文件

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

t.php

namespace cms;
class Apply {

  function apple(){
    echo "apple";
  }
  function pig(){
    echo "pig";
  }
    function red(){
    echo "red";
  }
}
include './tes/t.php';

//命名空间\这个空间下你要实例化类的类名。比方说我们要实例化 t.php里的Apply类,那么 use cms\Apply; 这就相当于引入这个类
use cms\Apply;

再 实例化 new Apply();调用里边的方法 $sa = new Apply(); $s=$sa->apple();

 

有的人可能问了,那我不同的命名空间下,有相同的类名,在同一个文件中使用怎么办?比方说我们上边的index.php,把t1.php和t2.php都包含进来,然后new Apply();这个时候是会报错的,解决方案就是起别名,比方说 use cms\Apply as b;  此时我们new 的时候不应该写成 new Apply();而是new b();这样就不会发生冲突了。

 

posted @ 2018-08-02 15:21  归回老本行  阅读(576)  评论(0编辑  收藏  举报