Parece lo mismo para mí, pero no estoy seguro,¿Hay alguna diferencia entre __DIR__ y dirname (__ FILE__) en PHP?
porque hay muchos proyectos que usan dirname(__FILE__)
.
Parece lo mismo para mí, pero no estoy seguro,¿Hay alguna diferencia entre __DIR__ y dirname (__ FILE__) en PHP?
porque hay muchos proyectos que usan dirname(__FILE__)
.
Su resultado es exactamente el mismo; entonces, no hay diferencia en eso.
Por ejemplo, las dos líneas siguientes:
var_dump(dirname(__FILE__));
var_dump(__DIR__);
los dos para dar la misma salida:
string '/home/squale/developpement/tests/temp' (length=37)
Sin embargo, hay al menos dos diferencias:
__DIR__
sólo existe con PHP> = 5,3
dirname(__FILE__)
es más ampliamente utilizado__DIR__
se evalúa en tiempo de compilación, mientras dirname(__FILE__)
significa una función -llamada y se evalúa en tiempo de ejecución
__DIR__
es (o, debería ser) más rápido.
Como, como referencia, consulte la sección del manual Magic constants(citando):
__DIR__
: El directorio del archivo.
Si se usa dentro de un include, el directorio del archivo incluido es devuelto.
Esto es equivalente adirname(__FILE__)
.
Este nombre de directorio no tiene una barra diagonal posterior a menos que sea el directorio raíz .
(Agregado en PHP 5.3.0.)
¿Cuándo está disponible '__FILE__'? – user198729
No estoy seguro, pero lleva allí bastante tiempo * (la página de Constantes mágicas del manual dice que su comportamiento ha sido modificado en PHP 4.0.2, así que diría que ya ha estado allí antes) * –
__DIR__ y dirname (__ FILE__) siempre tira la última barra, ¿correcto? – nbrogi