php的require、include、require_once和use的区别/命名空间的使用,php如何在cli程序里引用composer安装的包等问题

101次阅读
没有评论

今天对php的require、include、require_once和use的区别/命名空间的使用,php如何在cli程序里引用composer安装的包等问题做个总结。

1、require、include

php的require、include都是文件包含,不同的是require语句会输出错误信息,并且立即终止脚本处理。而include语句在没有找到文件时则会输出警告,不会终止脚本の处理。

2、require_once、include_once

含义同上,但如多次包含仅加载一次。

3、require、include、require_once/包含和use的区别

require、include、require_once等包含或引入文件是真实的文件引入,而use是逻辑上的引入

所以,当use一个未引入的类时会得到一个报错: Fatal error: Uncaught Error: Class ‘xxx\xxxx’ not found in xxx.php

有人可能会想,为什么在大部分框架里可以直接use某个类而不用先引入文件,原因时一般框架在入口文件里已经做了这些。

4、如何在cli程序里引用composer安装的包

在cli程序里引用composer安装的包,只需在use之前require_once vendor/autoload.php即可 下面是一个简单的例子:

define('DIR_SRT', DIRECTORY_SEPARATOR);
define('SH_Plugin_DIR', realpath('../').DIR_SRT);
require_once(SH_Plugin_DIR.'vendor/autoload.php');

use GuzzleHttp\Promise\Promise;

//可以愉快的开始使用Promise类了
$promise = new Promise();

 5、use、namespace

use完全不同于require或者include,use用于引用或导入已经被namespace修饰的类(!symfony中如果类的命名和当前文件名不同会报错:命名空间有误)。

facingscreen
版权声明:本站原创文章,由 facingscreen2022-08-28发表,共计882字。
转载说明:本文为搜栈网原创文章,除特殊说明外皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码