2011-01-25 22 views
97

¿Qué hace un \ en PHP?¿Qué hace una (barra invertida) en PHP (5.3+)?

Por ejemplo, https://github.com/foxbunny/CSRF4PHP/blob/60d9172b7f0cd93346cac9065fb17182854ebf1c/CsrfToken.php#L80-L87 tiene \FALSE, \session_id, y \Exception:

public function __construct($timeout=300, $acceptGet=\FALSE){ 
    $this->timeout = $timeout; 
    if (\session_id()) { 
     $this->acceptGet = (bool) $acceptGet; 
    } else { 
     throw new \Exception('Could not find session id', 1); 
    } 
} 
+32

Hace que el código sea menos legible. Pero para [referencia: ¿Qué significa este símbolo en PHP] (http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php) – mario

+0

@mario tema de stackoverflow muy bueno. Gracias por el enlace :) – Alfred

+0

Supongo que esta pregunta debería cerrarse, pero no puedo cerrar los temas yo mismo. – Alfred

Respuesta

132

\ (barra invertida) es el separador de espacio de nombres en PHP 5.3.

A \ antes del comienzo de una función representa el Global Namespace.

Al ponerlo allí se asegurará de que la función llamada proviene del espacio de nombres global, incluso si hay una función con el mismo nombre en el espacio de nombres actual.

+1

¡Gracias! ¿Lo encontraste usando google o ya sabías esto: P? – Alfred

+3

Lo encontré a través de google inteligente. Aún no he tenido la oportunidad de utilizar PHP 5.3 y estaba interesado en la respuesta. Tomo un minuto pero lo encontré. –

+0

¿Aún tiene términos de búsqueda que utilizó en google? – Alfred

8

Para aclarar posibles confusiones:

La barra invertida no implica herencia clase.

En lo que sigue, Animal, Dog, Shepherd no tienen que ser las clases, sino simplemente namespaces. Es decir, algo usado para agrupar nombres juntos en avoid naming collisions.

$myDog = new \Animal\Dog\Shepherd\GermanShepherd(); 

El líder \ significa Animal fue declarado en el ámbito global.

Cuestiones relacionadas