57 votes

PHP - Symbole 'At' avant le nom de la variable: @ $ _ POST

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 trouvais ceci:

 $hn = @$_POST['hn'];
 

Que va-t-il faire ici?

Edit: corrige mon erreur en nommant le symbole. Merci de l'avoir signalé.

74voto

Sarfraz Points 168484

L' @ est la suppression d'erreur de l'opérateur en PHP.

PHP supporte un contrôle d'erreur opérateur: le signe arobase (@). Lorsque ajouté à une expression en PHP, tout les messages d'erreur qui peuvent être générés par cette expression sera ignoré.

Voir:

Mise à jour:

Dans votre exemple, il est utilisé avant le nom de la variable pour éviter l' E_NOTICE d'erreur là. Si, en $_POST tableau, hn n'est pas définie, il va jeterE_NOTICE message, mais @ est utilisé pour éviter que l' E_NOTICE.

Notez que vous pouvez aussi mettre cette ligne en haut de votre script pour éviter E_NOTICE d'erreur:

error_reporting(E_ALL ^ E_NOTICE);

PHP6 Note:

Parce qu' @ de l'opérateur est très lent, il ne fonctionnera pas sur ini_set eg @ini_set.

Vous devriez éviter de l'utiliser où vous le pouvez.

11voto

Un avertissement ne sera pas lancé si $ _POST ['hn'] n'est pas défini.

7voto

SenorPuerco Points 457

Tout ce que cela signifie, c'est que, si $ _POST ['hn'] n'est pas défini, alors, au lieu de générer une erreur ou un avertissement, PHP affectera simplement NULL à $ hn.

3voto

Il supprime l'avertissement si $ _POST ['quelque chose'] n'est pas défini.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X