Кто-нибудь может сказать, каково отношение include и require с магическими константами в php?
Я учусь включать и требовать конструкции на http://php.net/ и нашел строку . Исключением из этого правила являются магические константы, которые оцениваются синтаксическим анализатором до того, как произойдет включение. на 7 параграфе этой страницы, но не понял, каково отношение магических констант с include и require в php.
Кто-нибудь может сказать простыми и легкими словами?
Отвечать на мой вопрос хорошо, но, пожалуйста, ответьте, я хочу знать и учиться, отрицательная оценка не имеет значения.
1 ответ
Перед синтаксическим анализом вашего кода анализатор разрешает все 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