TCH (statz) | #1, Főfasz (10443) |
1466 | #48b6 | ^ | Idézet | Sun, 19 Aug 2018 21:58:57 +02 |
94.21.*.* | *.pool.digikabel.hu |
PHP: a fractal of bad design Nem egyszerűen a mai napig aktuális, de egyre inkább, bazdmeg. Kitaláljátok miért nem ment? Elmondom. Ugye nemrég lett frissítve PHP7-re a szerver. És a derék, ügyes, szép, okos, stb. PHP fejlesztők gányolók kibaszták a mysql_ függvényeket és kénytelen voltam írni egy wrappert, ami menet közben wrappeli őket mysqli_ függvényekre. Na most, ahol a viselkedés megegyezik, ott sima wrap, de van, hogy egyebet is kell csinálni. Ezeket én lekezeltem, kivéve egyetlen egy dolgot, amit nem vettem észre... A mysql_fetch_ függvények zéró eredmény esetén FALSE-ot adnak vissza, míg a kibaszott mysqli_fetch_ függvények NULL-ot! Így aztán, amikor valami új browser agent jött fel, és a rendszer megpróbálta lekérni, akkor NULL jött be, viszont a vizsgálat $agent === false volt, márpedig a PHP-ban a false !== NULL (és közben a false == NULL, de ez most mellékes), így a PHP úgy vette, hogy a lekérés sikeres volt, de persze tömbünk az nem volt, így a későbbi MySQL kérés nem tudott vele dolgozni. Persze, tudom, az én kurwa anyámat, hogy nem !is_array-t használtam a vizsgálatra, hogy támaszkodtam a doksiban specifikált visszatérési értékre és konzisztenciát feltételeztem a későbbi fejlesztések esetén. Gázkamrába a PHP Teammel. |