Was bedeutet ein @ vor der Funktion?

matt

Erfahrenes Mitglied
Nun, mein Titel sagt schon alles aus. Ich würde gerne wissen, was *genau* ein @ vor dem Aufruf einer Funktion oder Variablenzuweisung bedeutet.

Beispiele:
$var = @$HTTP_GET_VARS;
echo @count($var);

Danke,
matt
 
Original geschrieben von Sanic
Ein @ schaltet eine eventuelle Fehlermeldung von dieser Funktion aus :)
Statt Ausschalten wäre 'Unterdrücken der Ausgabe' evtl. besser *klugscheiss* :-)

Macht vorallem dann sinn, wenn man z.B. via fsockopen testet, ob ein Host verfügbar ist. Für die weitere Bearbeitung im Script benötigt man nur den Rückgabewert FALSE, die Fehlermeldung kann man so problemlos unterdrücken.
Oder wenn man mit sessions arbeitet, die jedoch nicht direkt in Zeile 1 gesetzt werden, so kann man über das unterdrücken der Fehlermeldung verhindern, dass eine etwaige Fehlermeldung Header an den Browser schickt und somit das Setzen der Session verhindert.

So, genug geschwallt, auf ans Werk :rolleyes:
 
Hi,

das war mir bisher auch bekannt... Nur, was hat das @hier für einen Sinn?

$var = @$HTTP_GET_VARS;

(war vorher übrigens so:
$var = @${'HTTP_'. $method .'_VARS'};
... Macht doch im Endeffekt keinen großen Unterschied, oder?)

Gruß,
matt

*gähn* Aufstehen und auf zur Arbeit.
 
Wenn $HTTP_GET_VARS vor der Zuweisung nicht deklariert wurde, kann es bei entsprechender Konfiguration passieren, dass eine Notice ausgegeben wird. Das kann man mit dem vorangestellten @ unterdrücken.
 
Hm... ok, das sind dann wohl die Warnungen und würde dann bei jeder solchen Situation auftreten. Wie kann ich denn Variablen in PHP richtig deklarieren? Mit einer einfachen Zuweisung wie $var = "wert"; ist das ja nicht wirklich deklariert, oder?

Gruß,
matt
 
Zurück