2

我有两个文件

1 - index.php 2 - main.php

index.php通过调用main.php<?php require_once("../../includes/main.php"); ?>

我如何从main.php知道它何时执行,

如果index.php调用他或同一个用户执行它独立?
如果是require_once,我应该在main php中问什么以继续运行程序?

4

3 回答 3

2

我之前通过在包含之前设置一个变量,然后执行包含来做到这一点。例如:

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

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

于 2012-06-19T18:22:19.370 回答
2

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

于 2012-06-19T18:22:31.413 回答
1

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

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

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

于 2012-06-19T18:27:00.853 回答