Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: @ przed poleceniem php
Forum PHP.pl > Forum > Przedszkole
lygmunt
co oznacza @ przed poleceniem php ?
np.
@mssql_result
darecki
powoduje niewyswietlanie bledow funkcji
nospor
manual:
Cytat
Jeśli .... się nie powiedzie, funkcja zwróci FALSE i wygenerowany zostanie błąd na poziomie E_WARNING. Możesz użyć @ aby zatuszować to ostrzeżenie.
s_w_ir
A nawiązując do znacznika '@'. Czy uważacie że stosowanie go w programach powinno mieć miejsce?

Ja po zapoznaniu sie z Java( chodzi mi w tym momencie o bardziej odpowiedzialny styl kodowania, jak chodzby inicjalizacja zmiennych), stwierdzam, że taki znacznik to taka jakby taryfa ulgowa dla złego pisania skryptów.
Może jednak są sytuacje w których naprawde trzeba stosować ów znacznik?
darecki
wydaje mi sie ze jednak tak - sa sytlacje niezalezne od nas gdzie moze sie cos posypac np padnie serwer mysql i co wtedy ? sypie sie stronka. mozna jeszcze stosowac funkcje error_reporting wylaczajac w calym skrypcie raportowanie o bledach i stworzyc wlasny system raportow
mike
Cytat(s_w_ir @ 2005-09-08 11:05:47)
Może jednak są sytuacje w których naprawde trzeba stosować ów znacznik?

Oczywiście, że są. Pierwszy lepszy przykład, prosto z manuala funkcji fopen():
Cytat
If the open fails, the function returns FALSE and an error of level E_WARNING is generated. You may use @ to suppress this warning.


Oznacza to że newat jeżeli chcemy użyć eleganckiej obsługi wyjątków do przechwytywania błędów lub wyżucania ich w razie false zwracanych przez niektóre funkcje, czasem trzeba użyć @.

Z drugiej jednak strony znamy zamiłowania początkujących programistów do umieszczania @ wszędzie gdzie się da i ustawiania error_reporting żeby php nie zwracało nic. To oczywiście jest (dużym) błędem.

P.S. Tak gwoli ścisłości. @ to nie znacznik tylko operator (tłumienia błądów zresztą).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.