2010-04-26 7 views
4

Je me demande ce que signifie @ quand on l'utilise avant include ou require en php?Que veut dire @ avant d'inclure ou de demander

tels que:

@include('block.php'); 

peut-être une question de sa noob, mais je dois savoir les gars?!

désolé pour cette

+0

duplication absolue! – sepehr

+0

voir par ex. http://stackoverflow.com/questions/1032161/what-is-the-use-of-symbol-in-php et http://stackoverflow.com/questions/138159/php-alias-function – VolkerK

Répondre

10

@ est l'opérateur d'arrêt vers le haut. Si quelque chose ne va pas, aucun message d'erreur ne s'affichera. C'est généralement une mauvaise pratique de l'utiliser; d'abord parce que les messages d'erreur arrivent pour une bonne raison, et ensuite parce que c'est ridiculement lent pour ce qu'ils font.

Il est à peu près équivalent à l'emballage de la déclaration:

$oldErrorLevel = error_reporting(0); 
// the statement 
error_reporting($oldErrorLevel); 

Here's the link to the PHP manual page documenting it.

+0

Je pense que votre réponse est plus complète et au point, en fait je l'ai deviné mais je n'étais pas sûr, merci –

3

@ avant un appel de fonction supprime toutes les erreurs que la fonction normalement sortie.

Dans le cas de include, la personne faisant cela veut que le script continue si block.php n'est pas présent. Une meilleure façon de le faire est généralement de faire quelque chose comme ceci:

if(is_readable('block.php')) { 
    include('block.php'); 
} 
+3

Il y a d'autres raisons Cela peut empêcher le chargement d'un fichier, comme les autorisations. – zneak

+0

Bon point. Mise à jour pour utiliser 'is_readable' à la place. – ceejayoz

0

@ est l'opérateur supression d'erreur en php, vous ne verrez aucune erreur si le fichier ne se trouve pas dans cette déclaration .

Questions connexes