Ú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.
-
Sk8erPeter
nagyúr
Az empty() függvény miért nem megfelelő?
-----------------
(#5469) Tele von Zsinór: köszi a választ, akkor itt az ideje, hogy én is írjak pár saját hibaosztályt, és ezeket dobáljam a megfelelő helyeken.
Példának okáért milyen esetekre írtál saját hibaosztályt? Csak a gondolkodásmódra vagyok kíváncsi.
Új hozzászólás Aktív témák
- Apple iPhone 15 Pro Max - Attack on Titan
- PlayStation 5
- Az Apple bemutatta az iPhone 17-et
- Google Pixel topik
- Poco F6 5G - Turbó Rudi
- BestBuy topik
- Telekom mobilszolgáltatások
- Autós topik
- Google Pixel 10 és 10 Pro összehasonlító gyorsteszt
- Kormányok / autós szimulátorok topikja
- További aktív témák...
- AMD Ryzen 7 7700X - Új, 1 év garancia - Eladó!
- Samsung Galaxy Z Fold6 ,Navy ,120 Hz AMOLED dupla kijelző, Snapdragon 8 Gen 3,12/512 GB,2027. 07. 11
- Honor Magic5 Pro Green LTPO 120 Hz, 50 MP triplakamera, 66 W gyorstöltés 12/512 GB
- Sigma 15mm f/2.8 EX DG Fisheye (Canon bajonett)
- T14s Gen3 27% 14" FHD+ IPS érintő i7-1270P 16GB 512GB NVMe ujjlolv IR kam gar
- GYÖNYÖRŰ iPhone 13 Pro 256GB Graphite -1 ÉV GARANCIA - Kártyafüggetlen, MS3357
- Apple iPhone 12 Pro Max 256GB, Kártyafüggetlen, 1 Év Garanciával
- HIBÁTLAN iPhone 14 256GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3242
- Honor X6a 128GB, Kártyafüggetlen, 1 Év Garanciával
- Vadiúj AMD GAMER Setup! Kèszletről! Akár kamatmentes rèszletre is!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest