Autor | Zpráva | ||
---|---|---|---|
peta Profil * |
#1 · Zasláno: 19. 11. 2005, 14:45:33
Muze mi nekdo vysvetlit, jak se vyhodnocuje toto?
$aaa="x"; if ($aaa==0) $aaa="ZZZ"; echo $aaa; (vypise to ZZZ) Normalne jsem musel zprisnit na typove porovnavani, aby to uznal. Takhle: aaa - je naplneno aaa - neni rovno 0 ani "0" proc to vyhodnotil jako 0 ? $aaa="x"; if ($aaa===0) $aaa="ZZZ"; echo $aaa; (vypise to x) Jsem myslel, ze si porovnam ciselko nebo retezec a ono houby houby :) Delalo mi to neplechu, dalo se hrat i po vitezstvi. (http://mracek.xhosting.cz/gc/gc-games.php) |
||
depi Profil |
#2 · Zasláno: 19. 11. 2005, 15:31:07 · Upravil/a: depi
ak chces dosiahnut toho, ze ak v premennej $aaa nie je ziadna hodnota nech do nej ulozi "ZZZ" urobis to nasledovne:
|
||
Leo Profil |
#3 · Zasláno: 19. 11. 2005, 15:42:59
Protoze 0 mate jako cislo, ZZZ jako retezec, takze pri == se provede pretypovani, a ZZZ prevedeny na cislo je 0 :-) Leo
|
||
llook Profil |
#4 · Zasláno: 19. 11. 2005, 15:48:05
Pokud porovnáváš celé číslo s řetězcem, řetězec se převádí na číslo. A když "x" převedeš na číslo, tak dostaneš nulu ("x" == 0, "123" == 123 atd.). Pro porovnání s typovou kontrolou se používají operátory === pro rovnost, případně !== pro nerovnost.
To co potřebuješ je nejspíš tohle: $aaa="x"; if ($aaa === 0) $aaa="ZZZ"; echo $aaa; viz http://www.dgx.cz/trine/item/php-hadanka-vii-rovny-a-rovnejsi |
||
peta Profil * |
#5 · Zasláno: 20. 11. 2005, 18:44:07
depi Leo llook
Jasne, proste chybne PHP, no. V JS to treba funguje. PHP kdyz porovnava, porovnava "xxx"==0 jako prevod("xxx")==0 JS porovnava prevod("xxx")==0 nebo "xxx"==prevod(0) Podle toho, co se mu zda vhodnejsi. depi Konkretne slo o to, ze mam herni konzolu a stavy: 0 - zacatek hry 1 - hral krac 1 2 - hral hrac 2 "x" - konec hry, vymazat ze seznamu Vseci dik. |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0