Как узнать, был ли require_once?

У меня есть два файла

1 – index.php 2 – main.php

index.php вызов main.php с помощью <?php require_once("../../includes/main.php"); ?> <?php require_once("../../includes/main.php"); ?>

Как узнать из main.php, когда он выполняется ,

если вызов index.php ему или тому же пользователю Выполнить его автономно?
что я должен просить внутри основного php продолжить запуск программы, если был require_once? Спасибо

Solutions Collecting From Web of "Как узнать, был ли require_once?"

Другой подход заключается в использовании get_included_files() – основной файл, который включает другие, всегда будет отображаться сверху = быть 0-м элементом возвращаемого массива:

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

Это будет работать в большинстве случаев.

Я сделал это раньше, установив переменную перед включением, затем выполнив include. Например:

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

Затем в main.php просто проверьте эту переменную и каково ее значение.

Многие фреймворки определяют константу в index.php , а в main.php вы можете проверить ее существование с помощью main.php defined() . Вы можете получить дополнительную информацию о функции отладки backtrace, но вы не должны использовать ее в процессе производства / для проверки.