目前,php 有 4 个加载文件的语句:
- require
- include
- include_once
- require_once
先来说一下基本语法及介绍,后面介绍四者区别。
一、require()
require()
一般放在 php 脚本的最前面,php 执行前就会先读入 require 指定引入的文件,包含并尝试执行引入的脚本文件。
require 工作方式是提高 php 的执行效率,当它在同一个网页中解释过一次后,第二次便不会解释。但同样的,正因为它不会重复解释引入文件,所以当 php 中使用循环或条件语句来引入文件时,它不再可用(需要用到 include)。
二、include()
include()
可以放在 php 脚本的任意位置,一般放在流程控制的处理部分中。当 php 脚本执行到 include 指定引入的文件时,才将它包含并尝试执行。
这种方式可以把程序执行时的流程进行简单化,当第二次遇到相同文件时,php 还是会重新解释一次,include 相对于 require 的执行效率下降很多,同时在引入文件中包含用户自定义函数时,php 在解释过程中会发生函数重复定义问题。
三、require_once() / include_once()
分别与 require / include
作用相同,不同的是他们在执行到时会先检查目标内容是不是在之前已经导入过,如果导入过了,那么便不会再次重复引入其同样的内容。
include 有返回值,而 require 没有返回值。
include 在加载文件失败时,会生成一个警告(E_WARNING),在错误发生后脚本仍继续执行,所以include 用在希望继续执行并向用户输出结果时。
主文件结束位置
### test2.php ###
被载入文件位置 1
被载入文件位置 3
执行结果为:
上面说到,include 有返回值,而 require 无返回值。
对于 include,如果载入成功,有返回值,返回值为 1;如果载入失败,则返回 false。
关注
打赏
- uni-app - 随机数生成器,随机生成指定区间的整数或小数(支持指定小数点的位数)
- uni-app - 节流与防抖(按钮节流、输入框防抖解决方案)
- 微信小程序 - 页面触底 onReachBottom() 懒加载自动计算分页、检查是否已经请求完全部数据、自动请求接口合并数据(高效自动判断分页懒加载是否继续请求接口数据,超详细触底请求后端示例教程)
- JavaScript - 简单快速,根据条件剔除删除对象中某个字段键值(key / value)
- 微信小程序 - wx.navigateTo 跳转的路径携带 query 等参数,直接被忽略截断了(只剩网页域名后面的参数都没了),导致无法顺利传递给 web-view 组件(解决方案)
- JavaScript - 判断当前网页是否在微信内置浏览器中运行(最靠谱的方案,检查是否在微信浏览器中打开网站或页面)
- JavaScript - 纯 JS 实现让浏览器滚动条回到顶部(3种解决方案)
- uni-app - 根据后端返回的唯一 ID / code,生成 “唯一“ 的推荐码、邀请码、订单号、加密路由、一串英文+数字长字符等 (支持反序列化原 ID 解码,逆向得出 ID 二者互转)
- Vue Nuxt.js - 根据后端返回的唯一 ID / code,生成 “唯一“ 的推荐码、邀请码、订单号、加密路由、一串英文+数字长字符等 (支持反序列化原 ID 解码,逆向得出 ID 二者互转)
- JavaScript - 根据后端返回的唯一 ID / code,生成 “唯一“ 的推荐码、邀请码、订单号、加密路由、一串英文+数字长字符等 (支持反序列化原 ID 解码,逆向得出 ID 二者互转)