У меня есть два файла
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? Спасибо
Другой подход заключается в использовании 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, но вы не должны использовать ее в процессе производства / для проверки.