U mnie wygląda tak samo, ale nie jestem pewien
ponieważ istnieje wiele projektów, które używają dirname(__FILE__)
.
Ich wynik jest dokładnie taki sam ; więc nie ma różnicy.
Na przykład dwa następujące wiersze:
var_dump(dirname(__FILE__));
var_dump(__DIR__);
Oba dadzą ten sam wynik:
string '/home/squale/developpement/tests/temp' (length=37)
Ale są co najmniej dwie różnice:
__DIR__
istnieje tylko z PHP> = 5.3
dirname(__FILE__)
jest szerzej stosowany__DIR__
jest oceniany w czasie kompilacji, podczas gdy dirname(__FILE__)
oznacza wywołanie funkcji i jest oceniany w czasie wykonywania
__DIR__
jest (lub powinno być) szybsze.
Jako odniesienie, zobacz sekcję Magiczne stałe w podręczniku (cytowanie) :
__DIR__
: Katalog pliku.
W przypadku użycia wewnątrz dołączenia zwracany jest katalog dołączonego pliku.
Jest to równoważne zdirname(__FILE__)
.
Ta nazwa katalogu nie ma końcowego ukośnika, chyba że jest to katalog główny.
(Dodano w PHP 5.3.0.)
__DIR__
jest szybszy.