Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sprawdzanie czy jest zmienna coś zamiast isset lub @
[Przemo]
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 4.11.2003
Skąd: Kraków

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


Mam taki problem, który od dluzszego czasu mnie męczy, niechcąc używać małpy i krótkiego warunku:
  1. if (@$zmienna['klucz'] )
trzeba robić:
  1. if ( isset($zmienna['klucz']) && $zmienna['klucz'] )
a to zaciemnia kod bo warunkow IF są setki i wiele z nich ma takie uzycie, ze sprawdza czy zmienna jest czy i nie jest pusta.

I to jest nagminny problem, w różnych skryptach widzę zamiast jakiegoś jednego warunku zawsze dwa.

Myślałem o czymś takim, żeby zrobić metodę __get() w jakimś obiekcie, która wywoływało by się tak: w warunku:
  1. if ( $obj->{"$zmienna['klucz']"} )

Ta funkcja by parsowała wejście i szukała zmiennej/tablicy kluczy.
Będzie to poprawne, tylko troche nieeleganckie...

Macie na to jakis lepszy pomysł, żeby taki zapis był krótki, elegancki i poprawny?

Ten post edytował [Przemo] 15.10.2012, 20:13:25
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
lukasz1985
post
Post #2





Grupa: Zarejestrowani
Postów: 205
Pomógł: 43
Dołączył: 5.03.2012

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


http://php.net/manual/en/function.empty.php

  1. if (!empty($zmienna)) {
  2. ...kod...
  3. }

chociaż ja osobiście preferuję wyłączyć NOTICE w ustawieniach debugowania php

  1. error_reporting(E_ALL & ~E_NOTICE)


Ten post edytował lukasz1985 15.10.2012, 20:13:42
Go to the top of the page
+Quote Post
[Przemo]
post
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 4.11.2003
Skąd: Kraków

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


No tak, zapomniałem, że empty nie wywala notic'a (IMG:style_emoticons/default/smile.gif) Dzięki.

Wyłączenie debugowania u mnie odpada, skrypt ma działać na wielu serwerach i wielu domenach, chciałbym, żeby na ekran nic nie wypluwał ale logował wszystko nawet notic'y do pliku bo Klienci będą zgłaszać błędy masowo i roboty będzie dużo a nie każdy błąd da sie powtórzyć.

Ten post edytował [Przemo] 15.10.2012, 20:23:23
Go to the top of the page
+Quote Post

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: 23.08.2025 - 14:10