Hirdetés
Új hozzászólás Aktív témák
-
cucka
addikt
Php-ban bele lehet futni hasonló furcsaságokba, köszönhetően a típusrendszern és az ellenőrző függvények furcsaságainak. Pár hasznos tudnivaló.
Először is: a php-ban minden változónak van valamilyen típusa.
A null az egy érték és egy speciális típus is, tehát ha egy változó értéke null, akkor a típusa is null lesz. A korábban nem deklarált változók értéke (és típusa is) null, ugyanez igaz akkor, ha egy tömb nemlétező indexére hivatkozol.
A == és a === közötti különbség, hogy az előbbinél a php a megfelelő típusúra cast-olja az operandusokat, utóbbinál nem cast-ol, hanem ellenőrzi az operandusok típusát. Ezért van az, hogy egy null értékű változó és egy nem deklarált változó egyenlő lesz mindkét egyenlőségvizsgálat esetén.
Az automata cast-olással szintén érdemes vigyázni, lásd a köv. kód, ami azt fogja kiírni, hogy 102:
print ('100 forintnak 50 a fele' +2);Az is_int (is_null, stb.) függvények a paraméterként adott kifejezés típusát ellenőrzik, semmi mást. Például lásd a köv. kifejezéseket, melléjük írtam a kif. eredményét.
(true==is_int(3)) //IGAZ
(true==is_int('3')) //HAMIS
(true==is_int('3'+0)) //IGAZ
A POST-olt adatok mindig stringként érkeznek, tehát az is_int nem igazán jó ellenőrzésnek. Helyette használható az is_numeric(), ami stringként megadott számokra is az elvárásoknak megfelelő eredményt adja. Az is_int(null) minden esetben false-al tér vissza (mivel a null típus és az int típus különbözőek).Az empty() függvény megint érdekes, először is azért, mert nem függvény, nem is viselkedik függvényként. Kizárólag változót lehet neki paraméterként megadni. Az empty igazzal fog visszatérni, ha a paraméterének értéke null, 0, '0', üres string vagy üres tömb. Ezek közül a problémát a '0' érték jelenti, ami egyértelműen egy nem üres string
A fentiek mellett használható még az isset() is, ami szintén nem függvény és csak változó paraméterrel működik. Az isset akkor ad vissza true értéket, ha a paraméterként kapott változó korábban deklarálva volt és az értéke nem null.
Php-ban nagyjából ezek az eszközök vannak erre a feladatra, remélem sikerült újat is mondanom.
Új hozzászólás Aktív témák
- AirPods Pro (2. generáció) MagSafe tokkal (USB-C)
- Gamer PC - i5 14400f, RTX 3080 és 32gb RAM + GARANCIA
- LG 55UK6300MLB 139 cm / 55 4K UHD Smart TV 6 hó garancia Házhozszállítás
- Lenovo ideapad 100 i3-5005u / 8gb ddr3 / 500gb Hdd / töltő / akku rossz- karcos
- Apple iPhone 13 Mini 128GB, Kártyafüggetlen, 1 Év Garanciával
- StarTech Thunderbolt 3 TB3DKDPMAW - Dual-4K Dock
- Új akksi! Microsoft Surface Pro 6 i5-8350U 8GB 256GB 100%sRGB 1 év garancia + billentyűzet opciók!
- ÁRGARANCIA!Épített KomPhone Ryzen 7 9800X3D 64GB RAM RTX 5080 16GB GAMER PC termékbeszámítással
- Bomba ár! Dell Latitude E7450 - i5-5GEN I 8GB I 256SSD I 14" HD I HDMI I Cam I W10 I Garancia!
- ÁRGARANCIA!Épített KomPhone Ryzen 5 7500F 32/64GB DDR5 RTX 5060 8GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest