¿Qué hace un \
PHP?
Por ejemplo, CSRF4PHP 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);
}
}
php
namespaces
opcode
opcache
Alfredo
fuente
fuente
Respuestas:
\
(barra invertida) es el separador de espacio de nombres en PHP 5.3.A
\
antes del comienzo de una función representa el espacio de nombres global .Ponerlo allí asegurará que la función llamada sea del espacio de nombres global, incluso si hay una función con el mismo nombre en el espacio de nombres actual.
fuente
php backslash
que me llevó a un artículo sobre las consecuencias de seleccionarlo como el separador de espacio de nombres, luegophp namespace
me dio la documentación.Espacios de nombres
En PHP 5.3+, el
\
símbolo de barra invertida se usa en espacios de nombres. Es el símbolo de inicio para indicar un espacio de nombres y también sirve como separador entre los nombres de los subespacios de nombres.Consulte la documentación oficial sobre el espacio de nombres .
Opcache
Además, en PHP 7.0+, OPCache reemplaza algunas funciones con códigos de operación , lo que hace que estas funciones específicas se ejecuten mucho más rápido. Sin embargo, esto solo funciona cuando las funciones se colocan en el espacio de nombres raíz. Vea esta discusión sobre este tema. Entonces, además del espacio de nombres,
\
indirectamente también afecta la optimización del código.Las siguientes funciones nativas se benefician de este efecto:
fuente
Para aclarar la posible confusión:
La barra diagonal inversa no implica herencia de clase .
En lo que sigue,
Animal
,Dog
,Shepherd
no tiene que haber clases, sino simplemente espacios de nombres . Lo que significa algo usado para agrupar nombres para evitar nombrar colisiones .El
\
medio principalAnimal
fue declarado en el ámbito global.fuente
Se
\
usa en PHP 5.3 para espacios de nombres. Consulte http://www.php.net/manual/en/language.namespaces.rationale.php para obtener más información sobre espacios de nombres y PHP.fuente