Я учусь включать и требовать конструкций на php.net и нашел линию Исключением из этого правила являются магические константы, которые оцениваются синтаксическим анализатором до того, как произойдет включение. по 7 абзацу эта страница но не понял, какова связь магических констант с include и require в php.
Кто-нибудь может сказать простыми и легкими словами?
Отвечать на мой вопрос хорошо, но, пожалуйста, ответьте, я хочу знать и учиться, отрицательная оценка не имеет значения.
Перед синтаксическим анализом вашего кода анализатор разрешает все include и require, чтобы он мог анализировать все, как если бы это был один скрипт. Тем не менее, прежде чем разрешить их, любые магические константы, такие как __DIR__
будет решен.
Представьте, что у вас есть два файла:
file1.php
<?php
require __DIR__ . '/file2.php';
echo 'Hello ' . $a;
file2.php
<?php
$a = 'World';
Как видите, есть волшебная константа: __DIR__
там. Эта константа вернет абсолютный путь к файлу, в котором я ее записал. Поэтому анализируемый сначала разрешает:
<?php
require '/the-current-folder/file2.php';
Тогда это на самом деле включает в себя любой include
а также require
так получается:
<?php
$a = 'World';
echo 'Hello ' . $a;
Затем он разбирает скрипт:
Hello World
Других решений пока нет …