2024. április 19., péntek

Gyorskeresés

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

Írta: | Kulcsszavak: php . szemét . inkonzisztens . rage

[ ÚJ BEJEGYZÉS ]

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:

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

Hozzászólások

(#1) lezso6


lezso6
HÁZIGAZDA
LOGOUT blog

A RIOS rendkívül felhasználóbarát, csak megválogatja a barátait.

(#2) d@vee


d@vee
őstag

Érdekes cím, nosza lássuk....2 perc múlva, nekem ez kínai :DDD

Ja

(#3) lezso6 válasza d@vee (#2) üzenetére


lezso6
HÁZIGAZDA
LOGOUT blog

Na látod, a clickbait működik. Illuminati confirmed.

A RIOS rendkívül felhasználóbarát, csak megválogatja a barátait.

(#4) Mister_X válasza lezso6 (#3) üzenetére


Mister_X
nagyúr

Eddig is tudtuk, hogy a gyíkemberek alkalmaznak téhed :P

tl;dr: van egy tök felesleges parancs, egy gyakran hibára futó parancs és egy használhatatlan parancs az egész hóbelevancban, amik letudhatóak... öö... egy másik paranccsal? ;] nem vagyok programozó, csak próbálom meglátni a lényeget :D)

[ Szerkesztve ]

"Most kell szerénynek lenni, mert most van mire." --- "All dreams eventually disappear when the dreamers wake."

(#5) lezso6 válasza Mister_X (#4) üzenetére


lezso6
HÁZIGAZDA
LOGOUT blog

Az a lényeg, hogy egy alap függvényről ma tudtam meg, hogy igazából semi különleges képessége nincs, s ha jót akarsz magadnak, akkor tilos használni.

A RIOS rendkívül felhasználóbarát, csak megválogatja a barátait.

(#6) Parci válasza lezso6 (#5) üzenetére


Parci
HÁZIGAZDA

ez az idióta 0, null, "", empty és társai már engem is a sírba vitt 10 éve is. ráadásul nekem assembly után jött a php közvetlenül, hát, agyf.szt kaptam :DDD

dicranum scoparium + genista pilosa = :)

(#7) lezso6 válasza Parci (#6) üzenetére


lezso6
HÁZIGAZDA
LOGOUT blog

Assembly után egy világ omlik össze a PHP láttán. :D

Egyébként vannak itt még érdekességek, pl:

$var = false;

echo $var['nonexistent_key']; // NULL, és WARNING

$var = NULL;

echo $var['nonexistent_key']; // NULL, de nincs WARNING?!

Szerencsére ez a PHP 7.2-ben már jól fog működni, a PHP 8.0-ból pedig remélem teljesen kiirtják. Lassan, de biztosan a PHP-ból programozási nyelv lesz. A 7.0-val ezt nagy nehezen elkezdték, már az is megváltás, pl végre meg lehet adni típusokat, bár void visszatérési érték az csak a 7.1 óta van. :D :U

[ Szerkesztve ]

A RIOS rendkívül felhasználóbarát, csak megválogatja a barátait.

(#8) Parci válasza lezso6 (#7) üzenetére


Parci
HÁZIGAZDA

még 30 év és eléri a c szintjét, aztán újabb 30 év alatt az oop része is tökéletes lesz és megvan a c++! :DDD

dicranum scoparium + genista pilosa = :)

(#9) mobal


mobal
MODERÁTOR

Itt az ideje JavaEE-re váltani! :)

"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."

(#10) lezso6 válasza mobal (#9) üzenetére


lezso6
HÁZIGAZDA
LOGOUT blog

Azért a ló túlsó oldalára nem kéne átesni. :D

A RIOS rendkívül felhasználóbarát, csak megválogatja a barátait.

További hozzászólások megtekintése...
Copyright © 2000-2024 PROHARDVER Informatikai Kft.