私はphp.netでコンストラクトをインクルードして要求することを学んでおり、このルールの例外は、インクルードが発生する前にパーサーによって評価される魔法の定数です。そのページの 7 段落で、魔法の定数と php の include および require との関係が何であるかを理解していませんでした。
誰でも簡単で簡単な言葉で伝えることができますか?
私の質問に否定的なマークを付けても問題ありませんが、答えてください。知りたいし、学びたいです。否定的なマークは関係ありません。
コードが解析される前に、パーサーはすべての include と require を解決するため、1 つのスクリプトであるかのようにすべてを解析できます。ただし、それらを解決する前に、魔法の定数など__DIR__
は解決されます。
次の 2 つのファイルがあるとします。
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