file__ - obtener path php
¿Hay alguna diferencia entre__DIR__ y dirname(__ FILE__) en PHP? (1)
Se ve igual para mí, pero no estoy seguro,
porque hay muchos proyectos que usan dirname(__FILE__)
.
Su resultado es exactamente el mismo ; entonces, no hay diferencia en eso.
Por ejemplo, las dos siguientes líneas:
var_dump(dirname(__FILE__));
var_dump(__DIR__);
Ambos darán el mismo resultado:
string ''/home/squale/developpement/tests/temp'' (length=37)
Pero, hay al menos dos diferencias:
-
__DIR__
solo existe con PHP> = 5.3- por eso
dirname(__FILE__)
es más ampliamente utilizado
- por eso
-
__DIR__
se evalúa en tiempo de compilación, mientras quedirname(__FILE__)
significa una llamada de función y se evalúa en tiempo de ejecución- entonces,
__DIR__
es (o debería ser) más rápido.
- entonces,
Como referencia, vea la sección constantes mágicas del manual (citando) :
__DIR__
: el directorio del archivo.
Si se usa dentro de una inclusión, se devuelve el directorio del archivo incluido.
Esto es equivalente adirname(__FILE__)
.
Este nombre de directorio no tiene una barra inclinada a menos que sea el directorio raíz.
(Agregado en PHP 5.3.0)