J'ai vu des appels de fonction précédés d'un symbole at pour désactiver les avertissements. Aujourd'hui, je parcourais du code et j'ai trouvé ceci:
$hn = @$_POST['hn'];
À quoi cela servira-t-il ici?
Le @
est l'opérateur de suppression d'erreur en PHP.
PHP prend en charge un opérateur de contrôle d'erreur: le signe at (@). Lorsqu'il est ajouté à une expression en PHP, tous les messages d'erreur qui pourraient être générés par cette expression seront ignorés.
Voir:
Dans votre exemple, il est utilisé avant le nom de la variable pour éviter le E_NOTICE
erreur là-bas. Si dans le $_POST
array, la clé hn
n'est pas définie; il lancera un E_NOTICE
message, mais @
y est utilisé pour éviter que E_NOTICE
.
Notez que vous pouvez également mettre cette ligne au-dessus de votre script pour éviter un E_NOTICE
Erreur:
error_reporting(E_ALL ^ E_NOTICE);
Il ne lancera pas d'avertissement si $ _POST ['hn'] n'est pas défini.
Tout cela signifie que, si $ _POST ['hn'] n'est pas défini, alors au lieu de lancer une erreur ou un avertissement, PHP affectera simplement NULL à $ hn.
Il supprime les avertissements si $ _POST ['quelque chose'] n'est pas défini.
Quelque chose que d'autres ont oublié de mentionner, c'est qu'en plus d'ignorer l'AVIS, la variable sera définie sur NULL
.