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…
APC did two unrelated jobs: it cached compiled opcodes, and it offered a shared-memory key/value store to application code. PHP 5.5 bundles Zend OPcache and takes the first…
Every other file in a child theme replaces its parent equivalent: drop in single.php and the parent’s is not loaded. functions.php is the exception — both are included,…
Inside a namespace, an unqualified call to count() is not a call to count(). PHP looks for AppImportcount() first, fails to find it, and only then falls back…