Кто-нибудь может сказать, каково отношение 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
Другие вопросы по тегам