Qu'est-ce qu'un \
faire en PHP?
Par exemple, CSRF4PHP a \FALSE
, \session_id
, et \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);
}
}
\
_ (barre oblique inverse) est le séparateur d’espace de nommage dans PHP 5.3.
UNE \
avant le début d'une fonction représente le espace de noms global .
En le mettant ainsi, vous vous assurerez que la fonction appelée provient de l'espace de noms global, même s'il existe une fonction du même nom dans l'espace de noms actuel.
Pour clarifier une confusion potentielle:
La barre oblique inverse n'implique pas l'héritage de classe .
Dans ce qui suit, Animal
, Dog
, Shepherd
ne doivent pas nécessairement être des classes, mais simplement namespaces . Ce qui signifie quelque chose utilisé pour regrouper les noms ensemble éviter les collisions de nommage .
$myDog = new \Animal\Dog\Shepherd\GermanShepherd();
Le premier \
_ signifie que Animal
a été déclaré dans la portée globale.
Espaces de nommage
Dans PHP 5.3+, le symbole antislash \
Est utilisé dans les espaces de noms. Il s'agit du symbole de départ pour indiquer un espace de noms et sert également de séparateur entre les noms d'espaces de noms.
Voir la documentation officielle sur namespacing.
Opcache
De plus dans PHP 7.0+ certaines fonctions sont remplacées par des opcodes par OPCache, ce qui accélère considérablement l'exécution de ces fonctions spécifiques . Cependant, cela ne fonctionne que lorsque les fonctions sont placées dans l'espace de noms racine. Voir ceci discussion à propos de ce sujet. Ainsi, outre l'espacement des noms, le paramètre \
Affecte également l'optimisation du code.
Les fonctions natives suivantes bénéficient de cet effet:
"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"
Le \
est utilisé dans PHP 5.3 pour les espaces de noms. Voir http://www.php.net/manual/fr/language.namespaces.rationale.php pour plus d'informations informations sur les espaces de noms et PHP.