@readfile in php?

7

Ich hasse es, dass Google nicht nach Symbolen suchen kann. Ich sah dies in einem Beispielcode und fragte mich, warum es vor der Readfile-Funktion ein @ -Zeichen gibt:

%Vor%

Was bedeutet es anders als ohne @ -Symbol?

    
Jonathan. 16.04.2010, 16:25
quelle

5 Antworten

15

Ein @ vor einem Befehl in PHP bedeutet, dass keine Fehler gedruckt werden. Es heißt der Fehlerbehebungsoperator .

Wenn Sie @ und readfile entfernen, wird ein Fehler auftreten (z. B. dass Sie die Datei nicht lesen können). Die Fehlermeldung wird dann - abhängig von Ihren PHP-Einstellungen - zwischen den Inhalten Ihrer Website liegen. etwas, das du selten, wenn überhaupt, willst. (Es wird sogar noch schlimmer, wenn dies vor einem Aufruf von header() oder start_session() geschieht, denn sobald der Inhalt gesendet wurde, können die Header nicht mehr geschrieben werden.)

    
Joey 16.04.2010, 16:27
quelle
7

Ich bezeichne @ als "stfu-Operator".

    
goat 16.04.2010 21:48
quelle
6

Es ist der Fehlerunterdrückungsoperator von PHP. Mit Sie können Fehlermeldungen unterdrücken.

Tipp:

Verwenden Sie den Fehlerunterdrückungsoperator einfach nicht mit geschwindigkeitskritischem Code.

Zukunft:

Weil der @ Operator sehr langsam ist, wird er nicht funktionieren in ini_set zB @ini_set in einer zukünftigen Version von PHP zB PHP6

Wichtiger Hinweis:

Schlechte Verwendung des @ Operators

    
Sarfraz 16.04.2010 16:27
quelle
5

Es ist ein Fehlerbehebungsoperator . Manual wird dir alles sagen ...

    
Crozin 16.04.2010 16:27
quelle
3

@ bedeutet "zeige keine Fehler / Warnungen"

    
a1ex07 16.04.2010 16:27
quelle

Tags und Links