我怎么知道require_once是不是?

时间:2012-06-19 18:18:43

标签: php

我有两个文件

1 - index.php   2 - main.php

index.php <?php require_once("../../includes/main.php"); ?>

调用 main.php

如何在 main.php 执行时知道

如果 index.php 打电话给他或同一个用户执行它独立?
如果是require_once,我应该在主php内部继续运行程序? THX

3 个答案:

答案 0 :(得分:2)

我之前通过在include之前设置变量,然后执行include来完成此操作。例如:

$included_main_from = 'index.php';
require ('../../includes/main.php');

然后在main.php中检查该变量及其值是什么。

答案 1 :(得分:2)

许多框架在index.php中定义常量,在main.php中,您可以使用defined()检查它是否存在。您可以通过调试回溯功能获得更多信息,但不应在生产/检查中使用它。

答案 2 :(得分:1)

另一种方法是使用get_included_files() - 包含其他的“main”文件将始终显示在顶部=是返回数组的第0个元素:

if (get_included_files()[0] !== __FILE__) {
    // ..included
} else {
    // ..not included
}

这在大多数情况下都有效。