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的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-19php8的协程和hyperf的协程有什么区别?-icode9专业技术文章分享
- 2024-12-19php8 的fiber是什么?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-11-29使用PHP 将ETH账户的资产汇集到一个账户
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享