PHP中的namespace、use与require

2022/4/30 1:12:58

本文主要是介绍PHP中的namespace、use与require,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

namespace(命名空间):其实就是声明了空间,主要作用是防止在引入.php文件的时候防止.php内部的类/函数/常量或第三方类/函数/常量之间的名字冲突,如果引用了重复类名会导致报错。如下图:

 

a.php

<?php
//namespace think;
class a {
    public function a()
    {
        echo 'a';
    }
}

b.php

<?php
//namespace think;
//use think\a;
require_once './22/a.php';
require_once 'a.php';
//use think2\a as a2;
class b {
    public function b2(){
        $a =  new a;
        $a->a2();
        echo 'b';
    }

}
$c = new b();
$c->b2();
如上代码,require_once了两个内容一样的php文件,里面有相同的类a,当两个类重复的时候PHP会报错。   use:use关键字与文件加载没有一点关系,use关键字的作用就是声明要使用的类所处那个命名空间之下(而且方便了对象的实例化)。注:在使用traits的时候也会只用use来继承traits 例如下图,new \think\a实例化a的时候需要加上命名空间think,如果不加的话需要将b.php第三行的注释解开。而且如果两个a.php中有一个使用了命名空间的话require_once 同样拥有类名的文件不会报错。  

 

require:作用是要引进所需要的文件,文件的位置与命名空间无关,要使用绝对位置或者相对位置。 总结:其实说白了就是require引入了文件(require是根本),然后namespace是为了防止类名重复而导致php报错,use这是为了让对象声明更加的简洁代码更加优雅而存在的属于是锦上添花的类型。   至于Thinkphp5.0中类似下图的做法看似没有require到文件,实际上是框架已经require了文件的。      

 

 

(17条消息) 详解spl_autoload_register()函数_pengmingdong的博客-CSDN博客_spl_autoload_register

 

 

 

 

 

 

 



这篇关于PHP中的namespace、use与require的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程