Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] if null ...
Forum PHP.pl > Forum > Przedszkole
Komarek
Witam
Nie rozumiem jednej rzeczy.
Czemu to nie dziala jak nalezy ? :]

  1. if($userdata['user_field_2'] != null || $userdata['user_field_3'] != null)
  2. {
  3. $wyswietlaj = "tak";
  4. }
  5. else
  6. {
  7. $wyswietlaj = "nie";
  8. }


Zalezy mi na tym zeby sprawdzic Czy ktorekolwiek z pol zostalo uzupelnione.
Jezeli przynajmniej jedno pole jest uzupelnione - ma sie wyswietlac cos dalej
Jak zadne pole nie jest uzupelnione - nic ma sie nie wyswietlic.

Prosze o pomoc ;p

//p.s. to dotyczy phpbb by przemo ;p
Makciek
daj zamiast
  1. if($userdata['user_field_2'] != null || $userdata['user_field_3'] != null)


to
  1. if(!empty($userdata['user_field_2']) || !empty($userdata['user_field_3']))
Komarek
no fajnie dzieki dziala!
+ pomogl

A jak ktos moglby mi wytlumaczyc co nie dzialalo, bylbym wdzieczny ;p
Makciek
z tego co wyczytalem w manualu to "" nie jest tym samym co NULL tongue.gif

"
empty() is_null() !isset()

$var = "";

empty($var) is true.
is_null($var) is false.
!isset($var) is false.
"
AlexDeLarge
empty() - true jeśli parametr jest: pustym stringiem, pustą tablicą, znakiem \0, NULL i zerem.
isset() - true jeśli zmienna jest "w zasięgu", niezależnie od wartości jeśli wartość !== NULL
is_null() - true jeśli wartość jest równa NULL

@down
OK, racja - mea culpa.
Crozin
@AlexDeLarge: isset zwróci FALSE jeżeli zmienna ma wartość NULL - dowód

Cytat
z tego co wyczytalem w manualu to "" nie jest tym samym co NULL
W przypadku luźnego porównywania (== zamiast ===) obie wartości można stawiać za tożsame. http://www.php.net/manual/en/types.comparisons.php

Cytat
A jak ktos moglby mi wytlumaczyc co nie dzialalo, bylbym wdzieczny ;p
Byłoby łatwiej jakbyś podał jakie konkretnie wartości masz w tych zmiennych, czyli:
  1. var_dump($userdata['user_field_2'], $userdata['user_field_3']);
  2.  
  3. if (...) { ...
Prezi2907
Cytat(AlexDeLarge @ 16.02.2011, 17:41:23 ) *
empty() - true jeśli parametr jest: pustym stringiem, pustą tablicą, znakiem \0, NULL i zerem.
isset() - true jeśli zmienna jest "w zasięgu", niezależnie od wartości jeśli wartość !== NULL
is_null() - true jeśli wartość jest równa NULL

@down
OK, racja - mea culpa.

empty i is_null dobrze ale isset? BREDNIE...

isset sprawdza nam czy zostało coś ustalone np... na tablicach najwygodniej jest sprawdzić isset($_POST['cos_tam']) == true jeżeli taka tablica z taką nazwą istnieje...

Jeżeli nie pokaże nam błąd... może być ona pusta zapełniona itd... ALE TRUE POKAŻE JEŚLI ZOSTAŁA USTAWIONA ...

Nie będę tłumaczył tylko zapraszam do manuala... smile.gif
Crozin
@Prezi2907: To sam skocz do tego manuala bo nie wiesz co piszesz. Do sprawdzania czy dany klucz tablicy w ogóle istnieje służy array_key_exists, a nie isset.
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.