PHP, az édesanyád hétszentségit!

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! :Y 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

Még van hozzászólás! Tovább