2009-08-02 15 views
1
// Get the image information and display the image: 
    if ($image = @getimagesize ("../uploads/$pid")) { 
     echo "<div align=\"center\"><img src=\"show_image.php?image=$pid&name=" . urlencode($row['image_name']) . "\" $image[3] alt=\"{$row['print_name']}\" /></div>\n"; 
    } else { 
     echo "<div align=\"center\">No image available.</div>\n"; 
    } 

Was macht @ in @getimagesize?Was macht @ in diesem php?

+0

möglich Duplikat von [Referenz - Was bedeutet dieses Symbol in PHP?] (Http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php) – Gordon

Antwort

10

Es wird verhindert, dass Fehler von diesem bestimmten Funktionsaufruf angezeigt und/oder protokolliert werden.

0

Es unterdrücken Fehler zu erscheinen. Wenn für den Befehl, den Sie aufrufen, ein Fehler oder eine Warnung angezeigt wird, erhalten Sie keinen Ausdruck auf der Seite. Sie können es auch mit den Routinen mysql_ * verwenden.

17

Es ist ein Error Control Operator, der jeden Fehler maskiert (verhindert, dass er angezeigt wird), den die getimagesize-Funktion erzeugen könnte.

Es es in der Regel keine gute Praxis betrachtet, es zu benutzen: es Ihr Code macht wirklich härter zu debuggen (wenn ein Fehler auftritt, werden Sie es nicht wissen):

Derzeit ist die "@" error-control Betreiberpräfix wird sogar Fehlerberichte für kritische Fehler deaktivieren, die Skriptausführung beenden wird. Unter anderem bedeutet dies, dass, wenn Sie „@“ verwenden, um Fehler aus einer bestimmten Funktion zu unterdrücken, und entweder es ist nicht verfügbar oder falsch eingegeben wurde, wird das Skript ohne Anzeige genau dort sterben, warum .

Es gibt sogar eine PHP-Erweiterung, genannt scream, die diesen Operator deaktiviert - kann ziemlich nützlich sein, wenn Sie ein apllication sind maintaintaing, die dieser Operator viel verwendet ...

Im Allgemeinen ist es besser error_reporting (see also) Ebene und display_errors, so dass Fehler in der Entwicklung angezeigt werden, und nicht in der Produktion - das ist viel nützlicher, dass nur immer sie verstecken!