PHP is an open source programming language. As PHP is very simple to learn it is often associated with amateur website construction, however professional PHP developers are capable of producing code rivaling that of more complex languages such as Perl. With the object oriented nature of PHP5, the language bridges the gap between a simple scripting language and a full-fledged programming language. Additionally, PHP is not confined to the web only, as Linux and other Unix-based computers can run PHP applications from the command line. Although the language provides binding to GTK+ and other GUI libraries, it is not well suited for GUI applications. Therefore, no GUI PHP apps are widely distributed. PHP has native functions for interfacing with a wide variety of other technologies, such as MySQL, .NET, GeoIP, and literally hundreds more.
PHP began life as a set CGI binaries written in C by Rasmus Lerdorf to maintain his personal homepage. The first public release of "Personal Home Page Tools" was in 1995, and two years later it was rewritten by two Israeli university students, Andi Gutmans and Ze'ev Suraski. The resulting PHP3 was a huge success, and quickly overtook CGI Perl programming as the preferred method for creating dynamic web content. Today, PHP is developed and managed by Andi and Ze'ev through their company Zend Technologies. The languages' acronym was changed to the recursive "PHP: Hypertext Preprocessor".
In addition to praise, PHP has seen its share of criticism. Most of the common complaints against PHP are valid for all 'scripting' languages, however there are valid complains specific to PHP. For one, there is no consistent naming structure across functions. While most functions use noun_verb() naming, there are examples of verb_noun() functions. Still other functions are nounVerb() and others are verbNoun(). Another common gripe with PHP is the redundancy of functions. With well over 3000 built-in functions, PHP has many functions that are simple variations of one another. Despite this, they are often incompatible in regards to syntax, with some using function($needle, $haystack) syntax and other using function($haystack, $needle) syntax. However, by far the most common gripe about PHP is the magic quotes issue. Early versions of PHP had automatically added slashes to user text, to avoid SQL injection issues. Newer versions of the language have this feature turned off by default. So any portable code must check if this feature is running before handling user text. This adds unnecessary complexity to scripts, a absurdity as this feature was designed to actually reduce code burden.
Programming Terminology Questions