Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> empty() i isset() w jednym, funkcja do oceny
Majdan
post
Post #1





Grupa: Zarejestrowani
Postów: 445
Pomógł: 0
Dołączył: 21.12.2003
Skąd: Tomaszów Lubelski

Ostrzeżenie: (10%)
X----


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

Ten post edytował Majdan 1.04.2007, 20:11:21


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
NuLL
post
Post #2





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


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.

Ten post edytował NuLL 1.03.2005, 20:38:33


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


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...


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Majdan
post
Post #4





Grupa: Zarejestrowani
Postów: 445
Pomógł: 0
Dołączył: 21.12.2003
Skąd: Tomaszów Lubelski

Ostrzeżenie: (10%)
X----


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


--------------------
Go to the top of the page
+Quote Post
NuLL
post
Post #5





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


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


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
Go to the top of the page
+Quote Post
Majdan
post
Post #6





Grupa: Zarejestrowani
Postów: 445
Pomógł: 0
Dołączył: 21.12.2003
Skąd: Tomaszów Lubelski

Ostrzeżenie: (10%)
X----


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.


--------------------
Go to the top of the page
+Quote Post
xarr
post
Post #7





Grupa: Zarejestrowani
Postów: 105
Pomógł: 0
Dołączył: 5.12.2004

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


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
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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).


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
kszychu
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


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?


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
Majdan
post
Post #10





Grupa: Zarejestrowani
Postów: 445
Pomógł: 0
Dołączył: 21.12.2003
Skąd: Tomaszów Lubelski

Ostrzeżenie: (10%)
X----


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.


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 08:04