Új hozzászólás Aktív témák
-
cucka
addikt
válasz
#68216320
#12696
üzenetére
Hogy világos legyen az empty és az isset közötti különbség:
A következő két feltétel ekvivalens, leszámítva egy notice-t:
isset($v)
$v !== null
Tehát az isset true-val fog visszatérni bármilyen változóra, ami nem létezik, vagy létezik és a típusa/értéke null. Jól látható, hogy a neve ellenére az isset()-nek valójában semmi köze ahhoz, hogy egy változó (vagy tömb index) definiált-e vagy sem. (Ennek eldöntésére a get_defined_vars() való).
Az isset() abban az esetben működik biztonságosan, ha soha, semmilyen körülmények között nem használod a null értéket egyetlen változódnál sem. Felhasználó által post-olt űrlapok esetén ez alapból adott, mert minden értéked a tömbben string vagy array típusú, a kód többi részében viszont a te feladatod ezt biztosítani.És a következő két sor szintén ekvivalens
empty($v)
!isset($v) || $v != true
Az empty() az ekvivalens feltétel második fele miatt problémás. Itt a != operátort látod, ami azt jelenti, hogy a php itt a $v értékét előbb át fogja cast-olni bool típusúra. Ezért van az, hogy a "", "0", "0.0" stringekre az empty egyaránt igazzal fog visszatérni. A gyarkolatban ebből az következik, hogy az empty() teljesen alkalmatlan bármire, visszatérési értékének semmi köze ahhoz, hogy "üres"-e a változó értéke vagy sem. Javaslom, soha, semmilyen körülmények között ne használd az empty()-t, ez egész egyszerűen egy rosszul kitalált nyelvi elem a php-ban.(Egyébként is, a php-ban az == és != operátorok nem tranzitívak, ez elég ok ahhoz, hogy kerülendők legyenek. Helyette javasolt a === és !==, illetve úgy megírni a kódot, hogy tisztában legyél vele, melyik változód milyen típusú.)
Ez így nagyjából érthető?

Új hozzászólás Aktív témák
- Kormányok / autós szimulátorok topikja
- Fortnite - Battle Royale & Save the World (PC, XO, PS4, Switch, Mobil)
- Többszörösére növeli az üzemidőt az LG 1 Hz-es LCD panelje
- Házimozi belépő szinten
- Kerékpárosok, bringások ide!
- Crimson Desert
- Víz- gáz- és fűtésszerelés
- Teljes verziós játékok letöltése ingyen
- Apple iPhone 17 Pro Max – fennsík
- Call of Duty: Black Ops 7
- További aktív témák...
- BESZÁMÍTÁS! GIGABYTE B650E R9 7900X 64GB DDR5 1TB SSD RTX 5080 16GB NZXT H9 Flow White Corsair 850W
- BESZÁMÍTÁS! MSI X570 R5 5600X 32GB DDR4 512GB SSD RX 6800 16GB Kolink Unity Lateral ARG 750W
- BESZÁMÍTÁS! MSI B650 R5 9600X 32GB DDR5 1TB SSD RX 9070XT 16GB Lian Li LANCOOL II Mesh C RGB 750W
- BESZÁMÍTÁS! Gigabyte B450M R5 3600 16GB DDR4 512GB SSD GTX 1070 8GB Zalman S3 Chieftec 700W
- BESZÁMÍTÁS! Gigabyte B360M i5 8400 16GB DDR4 512GB SSD RTX 2070 8GB RAMPAGE Shiva Adata 600W
- Telefon felvásárlás!! Apple iPhone 16, Apple iPhone 16e, Apple iPhone 16 Plus, Apple iPhone 16 Pro
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
- Keresünk iPhone 14/14 Plus/14 Pro/14 Pro Max
- Belépő Gaming PC! i7-8700 / RTX 3060 Ti / 16GB DDR4 / 500GB SSD / Z390 / 500w!
- iPhone X 64GB 100% (3hónap Garancia)
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

