get_included_files() 返回当前脚本执行中所有成功加载的 include/require 文件的绝对路径数组,不包含主脚本及 auto_prepend/append 文件,按首次加载顺序排列且去重。

get_included_files 返回什么
get_included_files() 返回一个索引数组,包含当前脚本执行过程中所有被 include、include_once、require 或 require_once 加载过的文件的**绝对路径**(不是相对路径,也不是 URL)。它不包含主脚本本身(即入口 PHP 文件),也不包含通过 auto_prepend_file 或 auto_append_file 加载的文件。
常见误判是以为它会列出所有 require 的文件 —— 实际上只统计「成功加载」且未被跳过(如 include_once 重复引入时只记第一次)的文件。
调用时机决定结果范围
这个函数的结果高度依赖调用位置。越早调用,记录的文件越少;在脚本末尾调用,才可能看到全部已加载文件。
- 在
index.php开头调用:get_included_files()通常只返回空数组或仅含极少数前置配置文件 - 在某个类方法内部调用:只能看到该方法执行前已加载的文件,不包括之后
require的 - 想获取完整依赖列表?必须在所有
include/require完成后调用,比如放在exit前或脚本最后一行
示例:
<?php var_dump(get_included_files()); // [] require 'config.php'; var_dump(get_included_files()); // ['/full/path/to/config.php'] ?>
和 get_required_files 没有关系
PHP 没有 get_required_files() 这个函数 —— 所有 require 和 include 类型都会被统一记录进 get_included_files() 返回的数组里。区别只在加载行为(是否报错、是否去重),不影响记录逻辑。
访问全球海洋潮汐模型。功能包括查询指定日期、时间和地点的潮高、潮汐极值及格点天气数据。
注意两个易错点:
-
require失败(如文件不存在)会导致致命错误,脚本中断,后续get_included_files()根本不会执行 -
include_once第二次加载同一文件时,不会再次加入数组 —— 数组中每个路径只出现一次,按首次加载顺序排列
实际能用来干什么
它不是调试神器,但有几个明确可用的场景:
- 确认自动加载器是否意外重复引入了某个文件(配合
array_unique()和路径比对) - 生成当前请求所依赖的文件快照,用于缓存失效判断(例如:若任一
get_included_files()中的文件 mtime 变化,则清空 opcode 缓存) - 在测试环境中验证配置文件是否真的被加载(而非被条件跳过)
别指望它做依赖分析或构建工具 —— 它不解析 use、不追踪 Composer autoloader 加载的类文件,也不处理动态拼接的 include 路径(比如 include $dir.'/'.${$x}.'.php')。
最常被忽略的是:它返回的是绝对路径,而你 log 里看到的可能是带符号链接的真实路径,也可能不是 —— 取决于 PHP 启动时的工作目录和 open_basedir 限制。如果要做路径匹配,建议先用 realpath() 规范化。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










