Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: empty() i isset() w jednym
Forum PHP.pl > Forum > Gotowe rozwiązania
Majdan
W związku z tym iż ogólnie panuje niemały bałagan, jak sprawdzić, czy zmienna jest pusta stworzyłem na swoje potrzeby tę o to funkcję. Pomyślałem, iż może ona komuś się przydać i pomóc, więc zamieściłem ją tutaj.

  1. <?php
  2. function puste(&$zmienna) {
  3. //powered by Majdan, all rights reserved
  4. if(!isset($zmienna) || ($zmienna === '' && $zmienna !== 0)) {
  5. return true;
  6. } else {
  7. return false;
  8. }
  9. }
  10. ?>


<span style="font-weight: bold;">Sposób użycia:</span>
  1. <?php
  2. //tworzymy zmienne
  3. $zmienna1 = '';
  4. $zmienna2 = 0;
  5.  
  6. //sprawdzamy, czy zmienne są \"puste\"
  7. if(puste($zmienna1)) {
  8.  echo '$zmienna1 =''; pusta. ';
  9. } else {
  10.  echo '$zmienna1 =''; niepusta. ';
  11. }
  12.  
  13. if(puste($zmienna2)) {
  14.  echo '$zmienna2 = 0; pusta.';
  15. } else {
  16.  echo '$zmienna2 = 0; niepusta.';
  17. }
  18. ?>


Rozwiązuje ona problem, gdy zmienna może mieć wartość 0.

Mile widziane uwagi i inne pomysły rozwiązania. biggrin.gif
NuLL
Zbyt odkrywcza ta funkcja nie jest- dla mnie część biblioteki standardowej moich appsow ktora wpycham do każdej aplikacji.

  1. <?php
  2.  
  3. function isEmpty(&$var){
  4. return ($var === '' && $var !== 0 || !isset($var) ) ? (TRUE):(FALSE);
  5. }
  6.  
  7. ?>

Tak wygląda moja wersja.
dr_bonzo
Cytat
W związku z tym iż ogólnie panuje niemały bałagan, jak sprawdzić, czy zmienna jest pusta

Dla niektorych to bedzie odkrycie i przydatna rzecz, nie koniecznie dla ciebie, mnie, itd...
Majdan
Cytat(dr_bonzo @ 2005-03-01 21:34:43)
Dla niektorych to bedzie odkrycie i przydatna rzecz, nie koniecznie dla ciebie, mnie, itd...
Właśnie dla początkujących użytkowników stworzyłem tą funkcję. Zauważyłem, iż stanowi to problem. Było prowadzonych wiele dyskusji na ten temat. Niby proste i banalne rozwiązanie, ale zaoszczędzi wielu początkującym użytkownikom zachodu...

Cytat(NuLL @ 2005-03-01 21:29:39)
Zbyt odkrywcza ta funkcja nie jest- dla mnie część biblioteki standardowej moich appsow ktora wpycham do każdej aplikacji.

  1. <?php
  2.  
  3. function isEmpty(&$var){
  4. return ($var === '' && $var !== 0 || !isset($var) ) ? (TRUE):(FALSE);
  5. }
  6.  
  7. ?>

Tak wygląda moja wersja.
Twoja wersja jest identyczna. Inne są tylko nazwy zmiennych i funkcji.
To, że zastosowałeś skróconą wersję instrukcji if, to nie nie jest wielka różnica. Ja ją rozpisałem, aby początkujący użytkownicy zruzumieli jak ona działa.

Twój post nie wydaje mi się "odkrywczy" i w zasadzie to jest on tutaj zbyteczny... tiredsmiley.gif
NuLL
Chodzilo mi tylko o długość kodu że to można zapisać krócej na developera przystało. Ja w to jeszcze wpycham strlen-. Jak coś nie miałem żadnych złych myśli zamiarow czy coś. Sorki smile.gif
Majdan
Cytat(NuLL @ 2005-03-01 21:54:09)
Chodzilo mi tylko o długość kodu że to można zapisać krócej na developera przystało. Ja w to jeszcze wpycham strlen-. Jak coś nie miałem żadnych złych myśli zamiarow czy coś. Sorki smile.gif

Nic się nie stało. winksmiley.jpg Przecież o krytykę tutaj mi chodzi...

strlen() wydaje mi się jednak tutaj zbyteczne, gdyż niepotrzebnie zapycha pamięć, a funkcja ta nie jest szybka... Wiadomo, że nie jest to wielka różnica, ale przy wielokrotnym użyciu funkcji lepiej jest zmniejszyć pracę serwera do mininum, a nie długoś kodu.
xarr
Fajnie Majdan, ze tak myslisz o poczatkujacych userach. Chwali sie bo zawsze zamiast wpisywac po 100 razy ten kod mozna dac linka. Poczatkujacych jednak najtrudniej i tak nauczyc searcha smile.gif Przydal by sie tez moze taki dzial z gotowcami tego typu? Jakies rozwiazanie pada jakiegos nawet banalnego problemu dla niektorych to... wrzucic to w odpowiedni dzial.

Gdzies kiedys widzialem na jakims forum cos takiego: userzy pisali podstawowe w wiekszosci sprawy typu logowania, kanaly rss, jakies drzewka, numery ip za proxy, etc... mysle ze napewno sie to sprawdzalo smile.gif
nospor
A co jeśli zmiennej nie będzie. php zgłosi błąd/warning bo najpierw są sprawdzane wartości zmiennej.
Żeby to poszło dobrze, musi być najpierws sprawdzone czy ta zmienna wogóele istnieje czyli !isset($zmienna).
kszychu
Cytat(Majdan @ 2005-03-01 19:19:21)
  1. <?php
  2. function puste(&$zmienna) {
  3. //powered by Majdan, all rights reserved
  4. if($zmienna === '' && $zmienna !== 0 || !isset($zmienna)) {
  5. return true;
  6. } else {
  7. return false;
  8. }
  9. }
  10. ?>


Sposób użycia:
  1. <?php
  2. //definujemy funkcje
  3. function puste(&$zmienna) {
  4. //powered by Majdan, all rights reserved
  5. if($zmienna === '' && $zmienna !== 0 || !isset($zmienna)) {
  6. return true;
  7. } else {
  8. return false;
  9. }
  10. }
  11. //tworzymy zmienne
  12. $zmienna1 = '';
  13. $zmienna2 = 0;
  14.  
  15. //sprawdzamy, czy zmienne są \"puste\"
  16. if(puste($zmienna1)) {
  17.  echo '$zmienna1 =''; pusta. ';
  18. } else {
  19.  echo '$zmienna1 =''; niepusta. ';
  20. }
  21.  
  22. if(puste($zmienna2)) {
  23.  echo '$zmienna2 = 0; pusta.';
  24. } else {
  25.  echo '$zmienna2 = 0; niepusta.';
  26. }
  27. ?>


Rozwiązuje ona problem, gdy zmienna może mieć wartość 0.

Mile widziane uwagi i inne pomysły rozwiązania. biggrin.gif

Nie bardzo rozumiem ideę, która Ci przyświecała. Zawarłeś tu dwa przypadki:
- zmienna jest pusta - empty()
- zmienna nie jest ustawiona - isset()

Nie prościej i szybciej używać funkcji i elementów składni języka?
Majdan
Cytat(kszychu)
Nie bardzo rozumiem ideę, która Ci przyświecała. Zawarłeś tu dwa przypadki:
- zmienna jest pusta - empty()
- zmienna nie jest ustawiona - isset()

Nie prościej i szybciej używać funkcji i elementów składni języka?
A możesz mi podać przykład takiej funkcji, która działałaby tak jak moja?
Chodzi głównie o zmienne o wartości 0.
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.