Autor | Zpráva | ||
---|---|---|---|
quatzael Profil |
#1 · Zasláno: 26. 12. 2013, 12:22:15
Nevíte někdo náhodou jakou hodnotu
preg_match ve skutečnosti vyhazuje?
Všude vidím v kódech něco takovýho: if(preg_match($pattern,$string)) Ale v dokumentaci píšou, že to hází 1 pro kladný výsledek a 0 pro záporný. False jenom když je ta, nějaká chyba..
|
||
Taps Profil |
#2 · Zasláno: 26. 12. 2013, 12:36:43
quatzael:
a ty máš konkrétně jaký problém ? |
||
Kubo2 Profil |
quatzael:
To, čo píšu v dokumentácii, je svätá pravda. To, čo vidíš v kódoch, sa dá použiť, pretože PHP je dynamicky typovaný jazyk, čo znamená, že hodnota sa podľa kontextu pretypuje na požadovaný typ. Nenulová (aj záporná) hodnota sa v PHP pri použití v podmienke pretypuje na true , čo znamená, že sa podmienka splní.
Pri regulárnych výrazoch väčšinou nechceš vedieť, či došlo k možnej chybe, ale či reťazec zodpovedá maske alebo nie, preto ti je jedno či funkcia vráti 0 alebo false , takže táto podmienla je dostačujúca.
|
||
Str4wberry Profil |
#4 · Zasláno: 26. 12. 2013, 12:39:05
Takhle PHP funguje. Zkuste třeba:
$promenna = 1; if ($promenna) { echo "Test"; } V PHP platí 1 == true nebo 0 == false .
Má-li se 1 a true rozlišovat, slouží k tomu === .
|
||
DarkMeni Profil |
quatzael:
„Ale v dokumentaci píšou, že to hází 1 pro kladný výsledek a 0 pro záporný. False jenom když je ta, nějaká chyba..“ Tak sis odpověděl, a je to tak - když výraz bude souhlasit s testovaným řetězcem, tak ta funkce vrátí (int) 1, když ne, tak (int) 0 a když bude ve výrazu nějaká chyba tak (bool) false a myslim že to snad vyhodí i chybu E_NOTICE nebo E_WARNING A v podmínce if(preg_match($pattern,$string)) true je jako pravda a false je jako nepravda
Jinak cokoliv nenulovýho se vyhodnocuje jako true , a 0 jako false (myslim že i prázdný řetězec je taky jako false)
takže podmínka if(1) (ale klidně i třeba if(3) nebo if(-5) ) je jako if(true)
a podmínka if(0) je jako if(false)
Vlastně to máš tady popsaný: Converting to boolean |
||
Kubo2 Profil |
#6 · Zasláno: 26. 12. 2013, 12:42:02
Taps:
On zrejme trpí neznalosťou implicitného pretypovania, a to je dosť veľký problém :-) |
||
quatzael Profil |
#7 · Zasláno: 26. 12. 2013, 12:43:33
Díky za odpovědi. Jen jsem se chtěl ujistit, jestli to tak bude určitě v pořádku.
|
||
Kubo2 Profil |
DarkMeni:
A if(-1) je tiež ako if(true) .
|
||
quatzael Profil |
#9 · Zasláno: 26. 12. 2013, 12:56:07
Kubo2:
Jojo. To už tady psal [#5] DarkMeni.. |
||
Kubo2 Profil |
quatzael:
Ospravedlňujem sa, prehliadol som to. Ale písal som to tu už v [#3]. |
||
Časová prodleva: 10 let
|
0