Est-ce que quelqu'un pourrait expliquer les différences entre J'ai remarqué que lorsque je passe de error_rporting (e_all); code> et error_rporting (e_all & ~ e_notice); code>? P>
e_all code> à e_all & ~ e_notice code>, une erreur que j'étais piraté, disparaît. P>
3 Réponses :
e_all serait toute l'erreur et l'avertissement et l'avis - e_notice est un niveau d'erreur spécial, montrant des choses qui ne produiront pas d'erreur mais ne sont pas bonnes ou ne seront pas obsolètes dans la version future de PHP. Le niveau d'erreur de préavis est censé encourager les meilleures pratiques. P>
aussi il devrait être Vous êtes des conseils pendant le développement pour définir le rapport d'erreur sur e_all et corriger toutes les erreurs de préavis. P>
Un look dans le manuel donnerait beaucoup plus de détails. < / p> error_rporting (e_all ^ e_notice); code> pour tout signaler sauf avis. p>
e_all est "tout" p>
e_all & ~ e_notice est "TOUT SAUF AVIS" P>
Les avis sont les types de messages les moins urgents. Mais ils peuvent être très utiles pour attraper des erreurs de programmeurs stupides, comme essayer de lire à partir d'un hachage avec une clé inexistante, etc. p>
(Pour comprendre la syntaxe, lisez sur les opérateurs binaire) p>
e_all est un drapeau E_notice est un drapeau aussi bien
Ainsi, lorsque vous effectuez un fonctionnement bit bitwise de ~ qui ne vous exclurez pas E_Notice de e_all P>
sous la hotte qui suit sur le capot sur la hotte se produit p>
en décimal p> ils sont la puissance de 2 p> bitwise p> résultat ne sera pas p> 111111111110111
000000000001000