2011-01-25 37 views
97

Che cosa fa un \ in PHP?Cosa fa un (backslash) in PHP (5.3+)?

Ad esempio, https://github.com/foxbunny/CSRF4PHP/blob/60d9172b7f0cd93346cac9065fb17182854ebf1c/CsrfToken.php#L80-L87 ha \FALSE, \session_id e \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

Rende il codice meno leggibile. Ma per [riferimento: cosa significa questo simbolo in PHP] (http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php) – mario

+0

@mario argomento StackOverflow molto bello. Grazie per il link :) – Alfred

+0

Immagino che questa domanda debba essere chiusa, ma non riesco a chiudere gli argomenti personalmente .. – Alfred

risposta

132

\ (barra rovesciata) è il separatore di namespace in PHP 5.3.

A \ prima dell'inizio di una funzione rappresenta lo Global Namespace.

Mettere ci farà sì che la funzione chiamata è dal namespace globale, anche se v'è una funzione con lo stesso nome nello spazio dei nomi corrente.

+1

Grazie! l'hai trovato usando google o lo sapevi già: P? – Alfred

+3

Trovato attraverso Google intelligente. Non ho ancora avuto la possibilità di utilizzare PHP 5.3 ed ero interessato alla risposta. Ci è voluto un minuto ma l'ho trovato. –

+0

Hai ancora termini di ricerca utilizzati in google? – Alfred

8

Per chiarire potenziale confusione:

Il backslash non significa implica classe eredità.

Nel seguito, Animal, Dog, Shepherd non devono essere classi, ma semplicemente namespaces. Significato di qualcosa usato per raggruppare i nomi insieme a avoid naming collisions.

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

Il leader \ significa Animal è stato dichiarato in ambito globale.