Autor | Zpráva | ||
---|---|---|---|
Anonymní Profil * |
#1 · Zasláno: 29. 7. 2005, 11:33:39
jak zjistit jestly existuje proměnná X?
if(existuje proměnná X?) { příkazy prováděné při splnění podmínky; } else { příkazy prováděné při nesplnění podmínky; } |
||
flying gentleman Profil |
#2 · Zasláno: 29. 7. 2005, 11:36:23
if(isset(x)){splneno}
else{nesplneno} takhle ne? |
||
Thorai Profil * |
#3 · Zasláno: 29. 7. 2005, 19:14:55
jednodušší asi bude:
if ($x) { příkazy prováděné při splnění podmínky; } else { příkazy prováděné při nesplnění podmínky; } |
||
thingwath Profil |
#4 · Zasláno: 29. 7. 2005, 19:30:47
Thorai
Je to sice asi jednodušší, ale pokud se nepletu, vypisovalo by to chybu. |
||
Tomik Profil |
#5 · Zasláno: 29. 7. 2005, 19:48:19
Nemělo by, pokud proměnná něco obsahuje vrací true, pokud neobsahuje vrací false. Ale IMHO je jistější používat isset...
|
||
thingwath Profil |
#6 · Zasláno: 29. 7. 2005, 19:56:34
V nějakém novějším PHP to bude IIRC vypisovat varování (dá se samozřejmě potlačit). isset by mělo být jistější a čistší.
|
||
Leo Profil |
#7 · Zasláno: 29. 7. 2005, 19:58:44
if ($x)...
A zkousel jste to pro vsechny HODNOTY $x? Leo |
||
Tomik Profil |
#8 · Zasláno: 29. 7. 2005, 19:59:58
Mám na serveru PHP 5.0.4 (nejnovější verze) a chybu to nehlásí, ale je pravda, že to záleží na nastavení PHP (konkrétně IMHO na nastavení error_reporting).
|
||
thingwath Profil |
#9 · Zasláno: 29. 7. 2005, 20:01:40
$x = 0;
:-) |
||
Tomik Profil |
#10 · Zasláno: 29. 7. 2005, 20:04:56
To Leo: Ano, podmínka vrací true v případě, že je v proměnné $x uložen: interger, double, string, pole, ale i objekt, překvapivě i u hodnoty "true" vrací podmínka true, a v případě "false" false... :D
|
||
Tomik Profil |
#11 · Zasláno: 29. 7. 2005, 20:05:36
To thingwath: Hmm, na na nulku jsem zapoměl... :)
|
||
thingwath Profil |
#12 · Zasláno: 29. 7. 2005, 20:14:55
Programoval si někdy v céčku? ;-)
|
||
Leo Profil |
#13 · Zasláno: 29. 7. 2005, 21:44:03
A co
$x = ""; Leo |
||
thingwath Profil |
#14 · Zasláno: 29. 7. 2005, 21:59:03
Vidíš, řetěze v céčku se ukončují nulou, takže "" je vlastně taky jenom nula :-)
|
||
HubiPe Profil * |
#15 · Zasláno: 31. 7. 2005, 19:18:35 · Upravil/a: HubiPe
Ale jestli-že $x nebude deklarovaná, a bude zkoušena if($x){} else {} a je nastaveno error_reporting(E_ALL) (mělo by se to nastavovat vždy při vývoji softwaru a pro ostré fungování by se mělo vypnout [error_reporting(0)]) vypíše to varování. Nejlepší je použít toto:
|
||
krteczek Profil |
#16 · Zasláno: 1. 8. 2005, 18:02:56 · Upravil/a: krteczek
já používám ve většině případů tohle:
krteczek díky za upozornění, ano emty je můj častý překlep správně má být empty, je to opraveno :-) a ano testuji tím právě jestli je formulář odeslán vyplněn nebo ne, u isset mi to házelo chybu ( nevím už jakou ), takže jsem začal používat empty. na domácím kompu mám výpis všech chyb i varování. a pokud je to bez chyb tak to hodím na test hosting... krteczek |
||
pitomec Profil * |
#17 · Zasláno: 1. 8. 2005, 19:46:56
krteczek: to je nejlepsi
|
||
Charlie Profil |
#18 · Zasláno: 1. 8. 2005, 19:58:11
krteczek, mas tam chybu, je to empty().
Myslim, ze nejlepsi reseni, zda zjistit existenci promenne je prave funkce isset, pokud jsou v PHP povoleny vsechny chyby vcetne notice, tak by podle meho vyhazovalo chybu i empty(), isset() chybu nevyhodi. |
||
thingwath Profil |
#19 · Zasláno: 1. 8. 2005, 20:06:59
Empty není to správné. Zjištuje, jestliv proměnné něco je. Pokud ano, vrátí false. Pokud ovšem v proměnné nic není, vrátí true. Hezký příklad:
http://www.blueshoes.org/en/developer/php_cheat_sheet/ |
||
Charlie Profil |
#20 · Zasláno: 1. 8. 2005, 20:09:10
Ono taky zalezi na tom, na co chcete tuto podminku pouzit. Je rozdil, pokud chcete zjistit pouze existenci, nehlede na obsah, nebo pokud potrebujete, aby promenna nebyla prazdna, atd. atd.
|
||
juneau Profil |
#21 · Zasláno: 2. 8. 2005, 08:04:25
proto pouzivam vicemene pouze if (!empty($x)) {...} (pokud neni prazdne $x, tak...) ... empty/isset potlaci chybove hlaseni, pokud promenna neexistuje (nebyla inicializovana) a takhle mam i jistotu, ze obsahuje nejakou hodnotu. takze to resi pripad, kdy mi nekdo odesle prazdny formular a pod... promenne jsou vytvorene, ale prazdne.
|
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0