php - mac - xDebug extraño__DIR__ constante
xdebug php osx (3)
Como alternativa, reemplace la constante __DIR__
con la función dirname(__FILE__)
if (file_exists(dirname(__FILE__) . ''/../../foo/bar'')
{
/* ... */
}
Estoy escribiendo una aplicación PHP CLI que carga archivos YAML. Al intentar hacer esto dentro de una sesión de xDebug:
if (file_exists(__DIR__ . ''/../../foo/bar'')
{
/* ... */
}
__DIR__
es xdebug:
lo que siempre conducirá a false
desde file_exists()
.
¿Hay algún trabajo alrededor?
El problema es que su depurador le muestra un valor incorrecto, ya que el analizador ya ha reemplazado DIR en su script.
La explicación completa se puede encontrar aquí:
¿Cómo puedo conseguir que la constante mágica de PHP __FILE__ funcione con Eclipse y PDT?
La salida que obtienes no es incorrecta. ARCHIVO es una constante especial que se evalúa en el momento del análisis.
Establecer $dir = __DIR__;
y use if (file_exists($dir . ''/../../foo/bar'')
. Funcionará así.