A library that claims 5.3 compatibility is tested against whatever the author has installed, which is one version. The failures that reach users are the ones that version…
PDO’s MySQL driver emulates prepared statements by default. prepare() does not talk to the server; PDO keeps the string, and execute() substitutes the values into it with its…
PHP’s encrypted stream wrappers did not verify certificates. file_get_contents(‘https://…’) on 5.5 opened the connection, negotiated TLS and never checked who was on the other end, which made every…
The error suppression operator looks like a targeted silence — this one call, this one expected warning. It is neither targeted nor free. PHP implements it by saving…
array_filter() has always passed the value to the callback and never the key, so filtering an associative array by its keys meant building the predicate out of three…
Iterating by reference is the standard way to modify an array in place. What almost nobody remembers is that the loop variable survives the loop, still bound to…
A plugin that fetches a feed URL entered by a user is a server-side request forgery waiting to happen: the URL can be http://127.0.0.1:11211/, or the private address…