Für mich sieht es genauso aus, aber ich bin mir nicht sicher,
weil es viele Projekte gibt, die verwenden dirname(__FILE__)
.
Ihr Ergebnis ist genau das gleiche ; Also kein Unterschied.
Zum Beispiel die beiden folgenden Zeilen:
var_dump(dirname(__FILE__));
var_dump(__DIR__);
Geben beide die gleiche Ausgabe:
string '/home/squale/developpement/tests/temp' (length=37)
Es gibt jedoch mindestens zwei Unterschiede:
__DIR__
existiert nur mit PHP> = 5.3
dirname(__FILE__)
wird häufiger verwendet__DIR__
wird zur Kompilierungszeit ausgewertet, dirname(__FILE__)
bedeutet einen Funktionsaufruf und wird zur Ausführungszeit ausgewertet
__DIR__
ist (oder sollte) schneller.
Als Referenz siehe den Abschnitt " Magische Konstanten " des Handbuchs (zitiert) :
__DIR__
: Das Verzeichnis der Datei.
Bei Verwendung in einem Include wird das Verzeichnis der enthaltenen Datei zurückgegeben.
Dies entsprichtdirname(__FILE__)
.
Dieser Verzeichnisname hat keinen abschließenden Schrägstrich, es sei denn, es handelt sich um das Stammverzeichnis.
(Hinzugefügt in PHP 5.3.0.)
__DIR__
ist schneller.