Written by Rasmus Lerdorf to replace repetitive coding CGI calls.
Replaced the original parser with the Zend Engine, Zend Engine 2.
"I've never thought of PHP as more than a simple tool to solve problems"
— Rasmus Lerdorf
Inconsistencies in naming functions:
strrev // String Function str_repeat // String Function explode // String Function // At least somewhat consistent strpos($haystack, $needle) array_key_exists($needle, $haystack)
mysql_query("SELECT * FROM `users` WHERE `username` = $_GET['username']");
Bringing a knife to a gun fight is like bringing PHP to a modern web stack.
In general not too bad, but managing dependencies with PEAR is a pain.
Noteworthy tools / libraries:
composer require "vendor/library"
If you can pull it off, you’re badass as hell, but most of the time you’re only going to end up stabbing yourself. - @ohpalmer