Autor | Zpráva | ||
---|---|---|---|
G3n3sis19 Profil |
#1 · Zasláno: 20. 3. 2011, 14:15:25
nevím jak to 100% vysvětlit, tak to zkusím kódově.
<?php $idv = "3 or 1 = 1"; $id = intval($idv); if ($id == $idv) echo "Je to stejné"; //což mi výjde jako true ale to tak nemá být,protože v tu chvíli je $idv `3 or 1 = 1` a $id je `3`. jak je to tedy možné? |
||
king26 Profil |
#2 · Zasláno: 20. 3. 2011, 14:39:34
G3n3sis19:
v tom IFu se string převede na int, takže oboje bude 3 if($id === $idv) echo "true"; |
||
G3n3sis19 Profil |
#3 · Zasláno: 20. 3. 2011, 15:37:10
no jo, ale když bude
<?php $idv = "3"; $id = intval($idv); if ($id === $idv) echo "Je to stejné"; tak to taky nevýjde že? ale jak je možné že to převadí na int? |
||
TomášK Profil |
#4 · Zasláno: 20. 3. 2011, 15:43:05 · Upravil/a: TomášK
G3n3sis19:
„ale jak je možné že to převadí na int?“ Snaží se vyhovět, pokud to jde. Když porovnáváš int s float, také asi očekáváš, že se int převede na float a poté se porovnají. S řetězci je to podobné. |
||
Davex Profil |
#5 · Zasláno: 20. 3. 2011, 15:43:51
G3n3sis19:
„ale jak je možné že to převadí na int?“ Protože je to jedna ze základních vlastností jazyka PHP. |
||
G3n3sis19 Profil |
#6 · Zasláno: 20. 3. 2011, 15:45:15
a kdybych tu proměnnou dal do "" ?
"$idv" |
||
Časová prodleva: 13 let
|
0