@ teken voor een functie-aanroep

Wat is het verschil tussen deze twee functieaanroepen in PHP?

init_get($somevariable);
@init_get($somevariable);

Antwoord 1, autoriteit 100%

de “@” dempt alle php-fouten die uw functie zou kunnen veroorzaken.


Antwoord 2, autoriteit 21%

Het dempt fouten en waarschuwingen. Zie Foutcontrole-operators.


Antwoord 3, autoriteit 16%

Zoals al beantwoord, zal de @ervoor zorgen dat de fout (indien aanwezig) niet wordt weergegeven.
In termen van prestaties wordt dit niet aanbevolen.

Wat php doet is:

  • de status van de foutmelding lezen
  • de foutweergave instellen om geen fouten weer te geven
  • uw functie uitvoeren
  • de foutweergave in de vorige staat zetten

Als je niet wilt dat er fouten verschijnen, gebruik dan error_reporting(0);.

Of schrijf gewoon een bugvrije code 😛


Antwoord 4, autoriteit 3%

http://www.faqts.com/knowledge_base/ view.phtml/aid/18068/fid/38

Alle PHP-expressies kunnen worden aangeroepen met het voorvoegsel “@”, dat wordt uitgeschakeld
foutrapportage voor die specifieke uitdrukking.


Antwoord 5, autoriteit 3%

Zoals iedereen zei, stopt het de uitvoer van fouten voor die specifieke functie. Dit vermindert echter de prestaties aanzienlijk, omdat de instelling voor de foutweergave twee keer moet worden gewijzigd. Ik zou aanraden om waarschuwingen of fouten NIET te negeren en in plaats daarvan de code te repareren.

Other episodes