玩PHP也有些日子了,可是“PHP”这三个字母究竟是什么意思?
初学时看到某本书上写PHP就是Personal Home Page的缩写,顿时觉得很荒谬,显然PHP的功能及用途是far beyond个人主页的范畴。只记得当时到官方主页上求证了后两个字母大概是Hypertext Processor(其实Processor也记错了,下文会提到),却记不起第一个字母P是什么含义。
于是近日再到官方网去求证,竟然写着PHP: Hypertext Preprocessor。如果PHP的定义就是P=PHP、H=Hypertext、P=Preprocessor,那岂不是第一个字母就循环定义了?这是故意的吗?
今天再到Wikipedia百科全书去求证,得到如下描述:
PHP is a popular open-source, reflective programming language used mainly for developing server-side applications and dynamic web content, and more recently, other software. Originally, PHP stood for "Personal Home Page". Today, the official meaning is the recursive acronym "PHP Hypertext Preprocessor".
由此证实了:一、早期PHP确实曾被赋予Personal Home Page的含义;二、PHP现在确实是一个循环定义,而且此种循环定义被称为recursive acronym。关于recursive acronym,Wikipedia的描述如下:
A recursive acronym is an acronym (or occasionally, a backronym) which refers to itself in the expression for which it stands, similar to a recursive abbreviation. Though, because of their lack of a termination condition, perhaps a more accurate term would be circular acronym.
The earliest example is perhaps the credit card VISA, which was named in 1976 as a recursive acronym for VISA International Service Association.
In computing, it soon became a hackish (and especially MIT) tradition to choose acronyms and abbreviations which referred humorously to themselves or to other abbreviations. Perhaps the earliest example in this context, from about 1977 or 1978, is TINT ("TINT Is Not TECO"), an editor for MagicSix. This inspired the two MIT Lisp Machine editors called EINE ("EINE Is Not Emacs") and ZWEI ("ZWEI Was EINE Initially"). (Note that "eine" and "zwei" are German for "[female] one" and "two".)
Wikipedia还列举了很多recursive acronym:
- CAVE - Cave Automatic Virtual Environment
- Cygnus - Cygnus, Your GNU Support (though Cygnus says this is a backronym, while opponents maintain Cygnus, Your GNU Sucks)
- GiFT - GiFT: Internet File Transfer, unofficially: "GiFT Isn't FastTrack"
- GiNaC - GiNaC is Not a CAS
- GNU - GNU's Not Unix!
- LAME - LAME Ain't an MP3 Encoder
- LIAR, a Scheme compiler - LIAR Imitates Apply Recursively
- MINC - MINC Is Not C
- mung - Mung Until No Good (backronym, based on an earlier backronym "Mash Until No Good")
- NiL - NiL Isn't Liero
- PINE - Pine is not Elm
- PLD - PLD Linux Distribution (originally "Polish(ed) Linux Distribution")
- RPM - RPM Package Manager (originally "Red Hat Package Manager")
- Scaled - Scaled Composites: Advanced Link to Efficient Development
- TRM - TRM Recognizes Music
- TTP - The TTP Project (from Dilbert)
- Wine - Wine Is Not an Emulator
- XNU - XNU's not UNIX!
- YAML - YAML Ain't Markup Language
- Zinf - Zinf Is Not FreeA*p!
于是欲问PHP究竟是什么,答案就是:
PHP = PHP Hypertext Preprocessor
= (PHP Hypertext Preprocessor) Hypertext Preprocessor
= ((PHP Hypertext Preprocessor) Hypertext Preprocessor) Hypertext Preprocessor
= ...
用户登录





