![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 15.05.2003 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
Witam
Ostatnio mając kontakt z zawodowym programistą (sa niezawodowi?) dowiedziałem się wielu ciekawych rzeczy, m. in. ze funkcja mysql_pconnect() zwraca zasób i lepiej pózniej sprawdzac czy polaczenie jest nawiazane funkcja is_resource zamiast if($polaczenie == '1'), mimo iz ten drugi sposob dzialal. Wiec mam pytanie jak lepiej sprawdzac istnienie zmiennej if($zmienna) czy if(isset($zmienna)) (z tego co zauwazylem dziala to podobnie). Z manuala dowiedzialem sie ze funkcja isset do tego wlasnie sluzy (jej uzywanie mam dla mnie sens jako skrocenie kodu typu [php:1:bef1ddf087]<?php if($zmienna) $druga = TRUE; else $druga = FALSE; ?>[/php:1:bef1ddf087]) jednak jakie rozwiazanie jest lepsze gdy mamy wykonac jakas operacje zalezna od instnienia badz nie danej zmiennej? Czy lepsze (szybsze i niezawodne) jest if($zmienna) czy if(isset($zmienna)) ? -------------------- Warsztat: PLD | GphpEdit | PHP4
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 109 Pomógł: 0 Dołączył: 7.03.2004 Skąd: Szczecin|Bukowe Ostrzeżenie: (0%) ![]() ![]() |
Ja tam zawsze uzywam
[php:1:c69b1fce5f] if($zmienna) { ..................... } [/php:1:c69b1fce5f] i własnie to polecam, łatwiejsze działanie, krotszy kod, i o to chodzi;) -------------------- "Unix is like a vigvam - no windows, no gates, Apache inside"
Warsztat: Windows XP PE | Dreamweaver | Apache 1.3.29 | PHP 4.3.4 | Araneae | MYSQL 4 | Visual Studio | Dev-C++ [b]Programowanie: llllll 40% |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 15.05.2003 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
tak, ja dotychczas tez to uzywalem ale biorac pod uwage co powiedzial mi tamten gosc nabralem pewnych watpliwosci czy ten sposob bedzie zawsze dzialal prawidlowo....(tak jak w przypadku przytoczonym przeze mnie w poprzednim poscie)
-------------------- Warsztat: PLD | GphpEdit | PHP4
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 109 Pomógł: 0 Dołączył: 7.03.2004 Skąd: Szczecin|Bukowe Ostrzeżenie: (0%) ![]() ![]() |
Pewnie ze dziala, masz tu przyladowy skrypt, formularz, jezeli uzytkownik poda a i bedzie ta zmienna istanila zostanie wypisany odpowiedni komunikat, jesli nie zostanie wypisany inny komunikat.
Oto kod plik php o nazwie zmienna.php: [php:1:1fc7d74300] <html <head> </head> <body> <?php if($a) echo"Zmienna Istnieje"; else echo"Niestety..."; ?> </body> </html> [/php:1:1fc7d74300] plik html o nazwie zmienna.html [xml:1:1fc7d74300] <html> <head> </head> <body> <form method=post action=zmienna.php> Podaj a <input type=text> <br> <input type=submit> </form> </body> </html> [/xml:1:1fc7d74300] -------------------- "Unix is like a vigvam - no windows, no gates, Apache inside"
Warsztat: Windows XP PE | Dreamweaver | Apache 1.3.29 | PHP 4.3.4 | Araneae | MYSQL 4 | Visual Studio | Dev-C++ [b]Programowanie: llllll 40% |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 15.05.2003 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
tak
![]() -------------------- Warsztat: PLD | GphpEdit | PHP4
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 109 Pomógł: 0 Dołączył: 7.03.2004 Skąd: Szczecin|Bukowe Ostrzeżenie: (0%) ![]() ![]() |
Nie bardzo wiem o co ci chodzi??"Skrane przypadki?"-czyli?
Wg. mnie sa dwa przypadki zmienna istnieje, albo nie, a sprawdzanie przez:[php:1:d964b4527d]if($zmienna){kod.......}[/php:1:d964b4527d] zawsze będzie działało prawidłowo;) -------------------- "Unix is like a vigvam - no windows, no gates, Apache inside"
Warsztat: Windows XP PE | Dreamweaver | Apache 1.3.29 | PHP 4.3.4 | Araneae | MYSQL 4 | Visual Studio | Dev-C++ [b]Programowanie: llllll 40% |
|
|
![]()
Post
#7
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
To może ja. Porównaj to:
[php:1:89ca3e12b3]<?php $zmienna = 0; if ($zmienna) echo "Nie istnieje"; if (isset($zmienna)) echo "Jak najbardziej istnieje"; ?>[/php:1:89ca3e12b3] -------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 109 Pomógł: 0 Dołączył: 7.03.2004 Skąd: Szczecin|Bukowe Ostrzeżenie: (0%) ![]() ![]() |
Tak przykład bardzo dobry, jednak autorowi postu jak sie dowiedziałem chodzi o to czy sprawdzanie poprzez uzycie jedynie if bez isset będzie zawsze poprawne, nawet w "skrajnych przypadkach";)
-------------------- "Unix is like a vigvam - no windows, no gates, Apache inside"
Warsztat: Windows XP PE | Dreamweaver | Apache 1.3.29 | PHP 4.3.4 | Araneae | MYSQL 4 | Visual Studio | Dev-C++ [b]Programowanie: llllll 40% |
|
|
![]()
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 Tak przykład bardzo dobry, jednak autorowi postu jak sie dowiedziałem chodzi o to czy sprawdzanie poprzez uzycie jedynie if bez isset będzie zawsze poprawne, nawet w "skrajnych przypadkach";)
No to odpowiedź, o ile nie zrozumiałeś, brzmi "nie". Często zmienna może istnieć i być zerowa bądź nie mieć wartości. To jest ten skrajny przypadek. -------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 48 Pomógł: 0 Dołączył: 15.05.2003 Skąd: Bielsko-Biała Ostrzeżenie: (0%) ![]() ![]() |
tak wlasnie o to chodzilo. Mozna wywnioskowac ze lepiej zawsze uzywac isset() i ze if($a) nie jest do konca poprawny (i skuteczny)....
-------------------- Warsztat: PLD | GphpEdit | PHP4
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 109 Pomógł: 0 Dołączył: 7.03.2004 Skąd: Szczecin|Bukowe Ostrzeżenie: (0%) ![]() ![]() |
Anu...chyle głowę przed wami, nie wiedziałem o tym, choc jeśli program ma sprawdzać czy jest zmienna to raczej rzadko występuje ona z wartością równą 0, albo jest zmienna z normalna zawartością(mam tu na myśli różną od 0) albo jej niema;)(przynajmniej jest takza zwyczaj)
-------------------- "Unix is like a vigvam - no windows, no gates, Apache inside"
Warsztat: Windows XP PE | Dreamweaver | Apache 1.3.29 | PHP 4.3.4 | Araneae | MYSQL 4 | Visual Studio | Dev-C++ [b]Programowanie: llllll 40% |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 0 Dołączył: 7.09.2003 Ostrzeżenie: (0%) ![]() ![]() |
Ja dodam tylko o dobrym nawyku obcinania spacji z każdego ciągu funkcją trim(),powód:
[php:1:cdd1bcd442]<?php $z = ' '; //sama spacja if(isset($z)) echo 'ustawiona!'; else echo 'nie istnieje!'; ?>[/php:1:cdd1bcd442] Wynik: ustawiona! Radze o tym pamiętać (jak o sprawdzaniu wszelkich danych). -------------------- Oooo, cia is on the phone... Ok, I got it. Shit I lost it.
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 20 Pomógł: 0 Dołączył: 28.04.2004 Skąd: Płock Ostrzeżenie: (0%) ![]() ![]() |
Przykład pierwszy:
[php:1:95b795a600]<?php error_reporting(E_ALL); if($zmienna) echo('Zmienna jest, a może jej nie ma?'); else echo('Może nie ma'); ?>[/php:1:95b795a600] Cytat Notice: Undefined variable: zmienna in PHPDocument1 on line 5
Przykład drugi: [php:1:95b795a600]<?php error_reporting(E_ALL); if(isset($zmienna)) echo('Na 100% jest'); else echo('Na 100% nie ma'); ?>[/php:1:95b795a600] Cytat Na 100% nie ma
Chyba sami widzicie różnicę. Choć standardowo w konfiguracji php błędy typu Notice nie są wyświetlanie, jednak istnieją. -------------------- Env: Aurox Linux 9.2 ][ Apache 2.0.49 ][ PHP5-RC3 ][ SQLite ][ Quanta+ 3.1.4
|
|
|
![]()
Post
#14
|
|
![]() Developer Grupa: Moderatorzy Postów: 2 844 Pomógł: 20 Dołączył: 25.11.2003 Skąd: Olkusz ![]() |
[manual:b584214aab]isset[/manual:b584214aab] <- sprawdza czy dana zmienna jest zdefiniowana
[manual:b584214aab]empty[/manual:b584214aab] <- sprawdza czy dana funckja ma jakos wartosc ( 0 jest uwazane za jej brak) Jeżeli chcecie sprawdzac czy jakas zmienna istnieje albo czy ma jakos wartosc najelpiej kozystac z tych 2 funckji ktore sie zajduja powyzej poniewaz one do tego sluza i nie wywalaja bledow |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 85 Pomógł: 0 Dołączył: 2.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Ja dodam tylko o dobrym nawyku obcinania spacji z każdego ciągu funkcją trim(),powód:
[php:1:4ea96e27c0]<?php $z = ' '; //sama spacja if(isset($z)) echo 'ustawiona!'; else echo 'nie istnieje!'; ?>[/php:1:4ea96e27c0] Wynik: ustawiona! Radze o tym pamiętać (jak o sprawdzaniu wszelkich danych). Do czego pijesz? Trim nie ma wpływu na wynik funkcji isset. Jeśli zrobisz tak, jak sugerujesz: [php:1:4ea96e27c0]<?php $z = ' '; //sama spacja $z = trim($z); if(isset($z)) echo 'ustawiona!'; else echo 'nie istnieje!'; ?>[/php:1:4ea96e27c0] Wynik: ustawiona! Czyli bez zmian... zapewne skojarzyło Ci się coś z empty, ale my tutaj dyskutujemy o isset :wink: -------------------- Na warsztacie (z zamiłowania): Nowy rynek kosztowności, broni, ziół i misktur na Vallheru (MMORPG) lllllllllllll 65%
[b]Na warsztacie (komercyjnie): Rozbudowa i adaptacja do wymagań klienta gotowego Progra |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 16:04 |