ruta obtener file__ chdir archivo __file__ php

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
  • __DIR__ se evalúa en tiempo de compilación, mientras que dirname(__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.


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 a dirname(__FILE__) .
Este nombre de directorio no tiene una barra inclinada a menos que sea el directorio raíz.
(Agregado en PHP 5.3.0)