Autor Zpráva
peta
Profil *
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
ak chces dosiahnut toho, ze ak v premennej $aaa nie je ziadna hodnota nech do nej ulozi "ZZZ" urobis to nasledovne:


$aaa="x";
if(!isset($aaa))
{ $aaa="ZZZ"; }
echo $aaa;
Leo
Profil
Protoze 0 mate jako cislo, ZZZ jako retezec, takze pri == se provede pretypovani, a ZZZ prevedeny na cislo je 0 :-) Leo
llook
Profil
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 *
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.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0