检查文件是否已包含或加载

php
2022-08-30 09:44:36

有没有一种优雅的方法来检查文件是否通过使用///或页面是否实际直接加载?我正在尝试在创建类文件时在类文件中设置测试文件。includeinclude_oncerequirerequire_once

我正在寻找类似于Python技术的东西。不设置全局变量或常量。if __name__ == "__main__":


答案 1

引用自:如何知道php脚本是否通过require_once()调用?

我正在寻找一种方法来确定文件是否已被包含或直接调用,所有这些都来自该文件。在我的任务中的某个时刻,我通过了这个线程。从PHP手册中检查了这个和其他网站和页面上的各种其他线程,我得到了启发,并提出了这段代码:

if (basename(__FILE__) == basename($_SERVER["SCRIPT_FILENAME"])) {
  echo "called directly";
} else {
  echo "included/required";
}

从本质上讲,它比较当前文件(可以包含的文件)的名称是否与正在执行的文件相同。

图片来源:@Interwebs Cowboy


答案 2

您可以通过get_included_files来执行此操作 — 返回一个包含包含或所需文件名称的数组,并针对__FILE__


推荐