Ugye ez egy szemét nyelv. A legrosszabb fajtából. Persze ezzel is el lehet kódolgatni, csak ismerni a nyelvet. De úgy néz ki 10+ év PHP-zás után is találtam új hülyeséget. Nem akárhol. Na akkor kezdjük.
Inkonzisztencia:
FALSE == ""
FALSE == 0
FALSE == 0.0
FALSE == "0"
FALSE == NULL
FALSE == array()
FALSE == $nonextistent
Oké, ezt eddig is tudtuk, vicc, pl array() != 0 de NULL == "" stb. Oké, ez kivédhető, oda kell figyelni a típusokra, a nagyonegyenlő operátort kell használni mindenhol.
Nézzük a NULL-t. Ugye kétféle esetben szoktunk találkozni NULL értékkel:
Hirdetés
1. Nem létező változó, aminek használatáért NOTICE vagy WARNING a jutalom
2. Konkrétan NULL értékre beállított változó.
Az utóbbi eset vizsgálható $var === NULL, ez faja. Az előbbihez viszont az isset($var) szükséges, különben hibát kapunk. Mekkmesterek persze az STFU operátort használják, így effektíve ugyanaz az eredmény, csak rövidebben, azaz: @$var === NULL De akinek van egy kis esze, az inkább nem csinál olyan helyzetet, ahol vizsgálni kell azt, hogy létezik-e egy változó.
Az isset másra is jó, mégpedig, hogy tömb kulcsa létezik-e, azaz isset($array['key']). Vagyis nem. Hisz ha tömb értke ott NULL, akkor hamis értéket kapunk, pedig létezik. Hát erre a feladatra ott a array_key_exists($array, 'key') Fantasztikus, ez már a NULL értéket is látja, ö'öm és bódottá'! Csak hát lassú szegény, ez így érdemes használni:
isset($array['key']) || array_key_exists($array, 'key')
Tömör gyönyör.
S akkor jön az empty() függvény. Ezt eddig arra használtam, hogy megvizsgáljam, hogy egy tömb üres-e. Na most, csak ma szembesültem a PHP dokumentációjában azzal, hogy ennek a függvény valójában mit csinál:
!isset($var) || $var == FALSE
Anyám borogass!
Soha többet nem használok empty()-t. Kiirtom minden kódomból. Ennek semmi értelme nincs. Effektíve elég lenne annyi írni csak feltételnek, hogy:
$var





nem vagyok programozó, csak próbálom meglátni a lényeget
