You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何判断PHP脚本是作为主文件运行还是被其他脚本引入?

判断PHP脚本是主运行还是被引入的可靠方法

针对你遇到的脚本重命名/移动后判断逻辑失效的问题,有两种通用且可靠的解决方式:

方法1:兼容所有PHP版本的动态路径对比

通过动态获取当前脚本和主脚本的绝对路径做对比,替代硬编码路径:

// 获取当前脚本的真实绝对路径
$currentFile = realpath(__FILE__);
// 获取启动脚本(主文件)的真实绝对路径
$mainFile = realpath(get_included_files()[0]);
// 判断当前脚本是否为主运行脚本
$isMainScript = ($currentFile === $mainFile);

realpath()会解析出文件的真实物理路径,不管脚本重命名、移动还是通过符号链接调用,都能正确匹配,彻底解决硬编码路径的缺陷。

方法2:PHP 7.4+ 直接使用__MAIN__常量

PHP 7.4及以上版本引入了__MAIN__内置常量,它的值就是启动脚本的绝对路径,直接对比即可完成判断,代码更简洁:

$isMainScript = (__FILE__ === __MAIN__);

注意事项

  • 两种方法在Web环境和命令行环境下都能正常工作,无需区分运行场景。
  • realpath()会解析符号链接为真实路径,如果你的脚本依赖符号链接的路径显示,可以去掉realpath(),直接对比原始路径(但推荐保留,避免路径解析差异)。

内容的提问来源于stack exchange,提问作者Dennis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 00:35:19