PHP中include()与require()
引用文件的方法有两种:require 及 include。
require 的使用方法如 require("file.php");
。这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。
include 使用方法如 include("file.php");
。这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。
_once 后缀表示已加载的不加载
1.报错 include引入文件的时候,如果碰到错误,会给出提示,并继续运行下边的代码 require引入文件的时候,如果碰到错误,会给出提示,并停止运行下边的代码
注:在 PHP 4.3.5 之前,包含文件中的语法错误不会导致程序停止,但从此版本之后会。
2.条件引用
include()与require()的功能相同,用法上却有一些不同,include()是有条件包含函数,而require()则是无条件包含函数, 例如下面例子,如果变量$somg为真,则将包含文件somefile.php:
if($some){<br>
include 'somefile.php';
}
但无论$some取何值,下面的代码将把文件somefile.php包含进文件里:
if($something){
require 'somefile.php';
}
下面的例子充分说明了这两个函数之间的不同
$i = 1;
while ($i < 3) {
require "somefile.$i.php";
$i++;
}
可以从以上这段代码中看出,每一次循环的时候,程序都将把同一个文件包含进去,很显然这不我们想要的,可以看出这段代码希望在每次循环时, 将不同的文件包含进来,如果要完成这个功能,只能使用函数include()
$i = 1;<br>while ($i < 3) {
include "somefile.$i.php";
$i++;
}
3.require用相对路径的时候
当A引用B,而B又引用了其他文件C时,C的路径如果是相对路径,则是相对于A的路径,而不是相对于B的’
4.require_once() 语句在脚本执行期间包括并运行指定文件。此行为和 require() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。
include_once() 语句在脚本执行期间包括并运行指定文件。此行为和 include() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。如同此语句名字暗示的那样,只会包括一次。
5..文件引用方式
include有返回值,而require没有
$login = include(’test.php’);
if(!empty($login)){
echo “文件包含成功”;
}else{
echo “文件包含失败”;
}
include()执行时需要引用的文件每次都要进行读取和评估, require()执行时需要引用的文件只处理一次(实际上执行时需要引用的文件内容替换了require()语句) 可以看出若有包含这些指令之一的代码和可能执行多次的代码,则使用require()效率比较高, 若每次执行代码时相读取不同的文件或者有通过一组文件叠代的循环,就使用include(), 可以给想要包括的文件名设置变量,当参数为 include()时使用这个变量
总结 require和include的区别在于,出现错误时,一个是error(错误)一个是warning(警告)。
本文采用 「CC BY-NC-SA 4.0」创作共享协议,转载请标注以下信息: 原文出处:Yiiven https://www.yiiven.cn/php-loading-external-files.html
相关文章
- Linux安装Nginx(菜鸟教程简单易懂)
- Git 常见问题 冲突原因分析及解决方案
- Linux安装Nginx
- Linux时区
- Linux 查看系统配置参数
- Linux 防火墙开放端口(有时不生效可能是没有保存、重启导致)
- Linux安装Redis
- Linux权限
- GitHub 热点速览 Vol.27:程序员的自我救赎——GitHub 摸鱼
- GitHub 热点速览 Vol.26:手把手带你做数据库
- 《HelloGitHub》第 51 期
- GitHub 热点速览 Vol.25:距离优雅编程你差个它
- GitHub 热点速览 Vol.24:程序员自我增值,优雅赚零花钱
- GitHub 热点速览 Vol.23:前后端最佳实践
- GitHub 热点速览 Vol.22:如何打造超级技术栈
- 《HelloGitHub》第 50 期
- GitHub 热点速览 Vol.21:Go 新手起手式,学就完事儿了
- 第 6 篇:django rest framework 分页接口
- GitHub 热点速览 Vol.20:VSCode 插件全家桶新增画图小能手
- GitHub 热点速览 Vol.19:如何叩响大厂的门?