PHP

PHP is a widely-used general-purpose open source scripting language that is especially suited for Web development and can be embedded into HTML. While PHP originally stood for Personal Home Page, it is now said to stand for PHP: Hypertext Preprocessor, a recursive acronym.

PHP files are often found as text files with the extension .php. The syntax rules allow HTML code to be intermixed with the PHP code; some PHP files are mostly static HTML with a few PHP commands embedded, while others are mostly PHP program code with a little bit of HTML. There might be bits of JavaScript or SQL too; you might have to understand several different programming and markup languages to fully understand a piece of code.

Sometimes the nonstandard extension .phps is used when the developer wants the PHP file to be served as source code rather than code executed on the server, for example to share a PHP script.

It is one of the possibilities for the P in LAMP (a set of technologies used in many web back-ends, including Linux, Apache, and MySQL, notable for being free, open-source software in contrast to proprietary technologies such as those from Microsoft) along with Perl and Python. Its ubiquitousness on the web led to the Wikidata people giving it a rare two-digit ID.

Usage and reception
As of 2017, PHP sees continued use in highly popular websites including Facebook and Wikipedia, but new projects are using it less and less in favor of Web environments based on Python, Ruby, and Node.js.

PHP may be the most widely hated programming language in proportion to its popularity. Critics point out in particular its development origins without any kind of master plan, with a mass of features grafted on over the years with many quirks and "gotcha"s for developers using it. It was also designed to be accessible to nonprogrammers (its original function was for the development of personal home pages, after all), meaning that syntax elements were chosen to be understandable to people who don't understand programming languages, rather than to facilitate more complex uses by power users who do know how to program. This results in all sorts of oddball cases and exceptions where constructs behave as the language developer thought naive users might expect them to rather than with the overall consistency expected by professional programmers.

Specs

 * Draft PHP specification

Manuals

 * PHP 2 manual
 * PHP 3 manual
 * Current PHP manual

Criticism

 * PHP: A fractal of bad design
 * You use PHP because you don't know better
 * PHP 2.0: A Review in Retrospect
 * PHP: The Good Parts (satire)

Software projects

 * Project to create Haskell library to parse PHP code
 * Ph7 is a lightweight interpreter of PHP

Sample files

 * https://telparia.com/fileFormatSamples/text/php/

Other links

 * PHP (Wikipedia)
 * Official PHP site
 * An explanation of some of the inconsistency in function naming
 * Explaining garbage collection in PHP 5.3
 * Announcing a specification for PHP
 * An actual, real paragraph from the draft PHP specification.
 * Top 7 Tools for Analyzing and Parsing Your PHP Code
 * PHP Essentials (online book)
 * Quotes from the creator of PHP