たとえば、次のような名前のオートローダーが常に表示されます。
require_once __DIR__ . '/../vendor/autoload.php';
それとより簡潔なものの違いは何ですか
require_once '../vendor/autoload.php';
?
PHPスクリプトは、独自のファイルのパスではなく、現在のパス(getcwd()
の結果)を基準にして実行されます。 ___DIR__
_を使用すると、インクルードが独自のパスに対して強制的に実行されます。
デモンストレーションするには、次のファイル(およびディレクトリ)を作成します。
_- file1.php
- dir/
- file2.php
- file3.php
_
_file2.php
_に次のような_file3.php
_が含まれる場合:
_include `file3.php`.
_
_file2.php
_を直接呼び出すと、正常に機能します。ただし、_file1.php
_ includes _file2.php
_の場合、現在のディレクトリ(getcwd()
)は_file2.php
_に対して間違っているため、_file3.php
_は含めることができません。
PHP自動検索。間違ったファイルをロードする。
https://secure.php.net/manual/en/function.set-include-path.php
そうすれば、正しいファイルを確実にロードできます。