namespace命名空间和use

  1. namespace其实就是怕文件类名字重合,于是用这个方法可以防止报错
//例如
@a.php文件
Class Same
{
  public function a()
  {
  	echo 'a';
  }
}

@b.php文件
Class Same
{
   public function b()
   {
   	echo 'b';
   }
}

________________________
运行index.php文件的时候
require("a.php");
require("b.php");

same();
这时就会报错:
Fatal error: Cannot declare class Same, because the name is already in use in *** on line 3

________________________
所以用namespace就可以避免
namespace App\a;
Class Same
{
 public function a()
 {
 	echo 'a';
 }
}

namespace App\b;
Class Same
{
  public function b()
  {
  	echo 'b';
  }
}

这时再运行
require("a.php");
require("b.php");

$a = new App\a\Same();
$a->a();
$b = new App\b\Same();
$b->b();

就不会报错了

2.use的作用就是,在上面代码块末尾,如果这样引用太长了
所以可以简化

//使用use操作符,声明类命名空间
use App\a;
require("a.php");
require("b.php");
//原始
$a = new App\a\Same();
$a->a();
//修改后
$a = new Same();
$a->a();

3.不过当use之后还是重合的话,可以用as来区分
4. 可以这样理解 namespace 命名空间是为了方便管理类而引入的机制,我们可以将功能相近的类都放在同一命名空间下,在使用时直接引入该空间就可以了,简单的说namespace 就是将里面的类打个包
5. 关键字namespace后面跟的是名称 不是路径!我们看到很多框架 namespace 后面都跟着“路径”其实是为了让我们知道该命名空间所在的文件位置 当我们文件很多时,这样的名称会方便我们查找。namespace和include,require完全不同!! 框架执行过程中已经帮我们 自动注入了,所以不需要我们 include require 不然要头疼死

参考:https://www.cnblogs.com/qq254980080/p/9933107.html

发布了48 篇原创文章 · 获赞 56 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/zhetmdoubeizhanyong/article/details/96209307