例如,我總是看到自動加載稱爲像這樣:爲什麼包括__DIR__在放在require_once?
require_once __DIR__ . '/../vendor/autoload.php';
是什麼這一點,更簡潔
require_once '../vendor/autoload.php';
之間的區別?
例如,我總是看到自動加載稱爲像這樣:爲什麼包括__DIR__在放在require_once?
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
包括file2.php
,當前目錄(getcwd()
)對於file2.php
將是錯誤的,因此不能包含file3.php
。
對於包括其可能到PHP搜索自動設置一些文件夾。當您包含具有相對路徑的文件時,您可以在所有文件夾中進行搜索。它更好地定義真正的路徑,以防止加載錯誤的文件中的一些錯誤。
https://secure.php.net/manual/en/function.set-include-path.php
然後你就可以確保您加載正確的文件。
雖然這也是事實,但這並不是最重要的原因。 – Evert