Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> @ zamiast isset()
norgoth
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 31.01.2008

Ostrzeżenie: (0%)
-----


Mam w swoim projekcie kilka takich kilka takich struktur kontrolnych, gdzie właściwie nie interesuje mnie czy dana zmienna istnieje czy nie, bo jeśli nie istnieje, to i tak warunek nie będzie spełniony, czyli mam rezultat jakiego chce.

Jako przykład mogę podać walidację formularza, w przypadku kiedy użytkownik nie wpisał jakichś potrzebnych danych, a formularz i tak nie przejdzie bo dane są sprawdzone pod kątem minimalnej długości stringa a np. długość nie może być mniejsza niż 5.

Problem w tym że kiedy tej zmiennej nie ma, to w error.log powstają niepotrzebne notice.

No i teraz pytanie. Czy można tłumić te notice przez dodanie przed zmienną operatora @, czy może mogą powstać jakieś niepoźądane efekty takiego działania i lepiej było by sprawdzać zmienną przez isset()? Jednak znowu czy isset() nie jest większym obciążeniem dla aplikacji niż małe, szybkie @?

Ten post edytował norgoth 31.01.2008, 23:44:06
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mike
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Jeśli spadek szybkości nawet do 30% jest dla Ciebie rzeczą do przełknięcia to możesz korzystać z @ (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Operator ten tłumi wyświetlanie, i tylko i wyłącznie wyświetlanie.

Dla parsera PHP to się nie liczy. On i tak zwraca błąd, przetwarza go i generuje. Ty tego po prostu nie widzisz, ale parser PHP i tak musi to zrobić. Co za tym idzie - poświęcić na to czas.

isset() jest za to składową języka (jedną z jego konstrukcji) więc działa dużo szybciej niż dowolna funkcja, zadecydowanie szybciej niż korzystanie z @

Poza tym stosując @ nie pozbywasz się błędów (bo generowany NOTICE to w rzeczywistości raport że coś jest nie tak), Ty je po prostu ukrywasz. A błędy należy naprawiać a nie chować pod dywan.

P.S.
@ to się tylko szybko pisze na klawiaturze (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Rezultaty jego działania wcale nie są szybkie (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 06:46