Was macht ein \ (Backslash) in PHP (5.3+)?

Was macht PHP?

Zum Beispiel hat CSRF4PHP \FALSE , \session_id und \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); } } 

Solutions Collecting From Web of "Was macht ein \ (Backslash) in PHP (5.3+)?"

\ (Backslash) ist das Namensraumtrennzeichen in PHP 5.3.

Ein \ vor dem Anfang einer function repräsentiert den globalen Namespace .

Wenn Sie sie dort platzieren, wird sichergestellt, dass die aufgerufene function aus dem globalen Namespace stammt, selbst wenn im aktuellen Namespace eine function mit demselben Namen vorhanden ist.

Um mögliche Verwirrung zu klären:

Der umgekehrte Schrägstrich bedeutet keine classnvererbung .

Im Folgenden müssen Animal , Dog , Shepherd keine classn sein, sondern einfach Namespaces . Bedeutet etwas, das verwendet wird, um Namen zu gruppieren, um Kollisionen zu vermeiden .

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

Das führende \ bedeutet Animal wurde im globalen Geltungsbereich deklariert.

Das \ wird in PHP 5.3 für Namespaces verwendet. Weitere Informationen zu Namespaces und PHP finden Sie unter http://www.php.net/manual/en/language.namespaces.rationale.php .

Namespaces

In PHP 5.3+ wird das Backslash \ -Symbol in Namespaces verwendet. Es ist das Startsymbol, das auf einen Namespace verweist und auch als Trennzeichen zwischen den Subnamespace-Namen dient.

Siehe offizielle Dokumentation zum Namespacing .

Opcache

Zusätzlich werden in PHP 7.0+ einige functionen durch OPCache durch Opcodes ersetzt , wodurch diese spezifischen functionen viel schneller laufen. Dies funktioniert jedoch nur, wenn die functionen im Root-Namespace platziert werden. Siehe diese Diskussion zu diesem Thema. Neben dem Namespacing wirkt sich das indirekt auch auf die Code-Optimierung aus.

Die folgenden nativen functionen profitieren von diesem Effekt:

 "array_slice" "assert" "boolval" "call_user_func" "call_user_func_array" "chr" "count" "defined" "doubleval" "floatval" "func_get_args" "func_num_args" "get_called_class" "get_class" "gettype" "in_array" "intval" "is_array" "is_bool" "is_double" "is_float" "is_int" "is_integer" "is_long" "is_null" "is_object" "is_real" "is_resource" "is_string" "ord" "strlen" "strval"