O que faz um \
PHP?
Por exemplo, CSRF4PHP tem \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);
}
}
php
namespaces
opcode
opcache
Alfred
fonte
fonte
Respostas:
\
(barra invertida) é o separador de namespace no PHP 5.3.A
\
antes do início de uma função representa o Global Namespace .Colocá-lo lá garantirá que a função chamada seja do espaço para nome global, mesmo se houver uma função com o mesmo nome no espaço para nome atual.
fonte
php backslash
que me levou a um artigo sobre as consequências de selecioná-lo como separador de namespace e depoisphp namespace
me deu a documentação.Namespaces
No PHP 5.3 ou superior, o
\
símbolo de barra invertida é usado nos espaços para nome. É o símbolo de início para indicar um espaço para nome e também serve como um separador entre os nomes dos subdomínios.Consulte a documentação oficial sobre namespacing .
Opcache
Além disso, no PHP 7.0 ou superior, algumas funções são substituídas por OPCache pelo OPCache , o que torna essas funções específicas muito mais rápidas. No entanto, isso só funciona quando as funções são colocadas no espaço para nome raiz. Veja esta discussão sobre este tópico. Portanto, além do namespace, o
\
indiretamente também afeta a otimização do código.As seguintes funções nativas se beneficiam desse efeito:
fonte
Para esclarecer possíveis confusões:
A barra invertida não implica herança de classe .
No seguinte,
Animal
,Dog
,Shepherd
não tem que ser classes, mas simplesmente namespaces . Significado de algo usado para agrupar nomes para evitar colisões de nomes .Os principais
\
meiosAnimal
foram declarados no escopo global.fonte
O
\
é usado no PHP 5.3 para namespaces. Veja http://www.php.net/manual/en/language.namespaces.rationale.php para obter mais informações sobre namespaces e PHP.fonte