I 1995 skreivRasmus Lerdorf eit settskript iPerl for å halde auge med treffstatistikken på hansCV som låg tilgjengeleg påInternett. Seinare skreiv han om pakken iC, og PHP 1 vart utgjeven det same året underopen kjedekode lisensenGPL (PHP1 finn ein i PHPsmuseum). Pakken vart kallaPersonal Homepage Tools, og ei lita gruppe samla seg om prosjektet.
Da PHP 2 – kalla PHP/FI (Form Interpreter) – kom, vart ein del nye ting lagt til, som til dømes støtte for kommunikasjon motdatabasear. Språket likna no litt påPerl, men med ein mindre konsistent og meir avgrensasyntaks og mindre funksjonalitet. Seinare sluttaAndi Gutmans ogZeev Suraski seg til prosjektet og skreiv om PHP frå botnen av. Resultatet vart PHP 3, som mellom anna var mykje raskare enn dei tidlegare versjonane. Samtidig endra ein kva PHP stod for, tilPHP:HypertextPreprocessor, eitrekursivt akronym.
PHP opparbeidde seg etter kvart ein stor brukarbase, og vart etter kvart sett på som ein standard-installasjon på fleire avvevtenarane på Internett. Så kom PHP 4 med den nyeZend Engine, som ligg til grunn for sjølve språket. Den versjonen som er støtta offisielt i dag (november 2009), er PHP 5.1.3.
Fyrste utgåva av PHP4 kom i Mai 2000,[4] og har vore under utvikling heilt til siste versjon 4.4.9 vart slept den 07.08.2008. Denne utgåva markerte PHP4s livssyklusslutt.[5][6]
PHP5 hadde sin fyrste stabile versjon 13 juli 2004, og introduserte betre støtte forobjektorientert programmering ogSimpleXML for enklare manipulering avXML. Neste versjon, PHP 5.1 introduserte eit nyttgrensesnitt for generisk kommunikasjon meddatabaser for å gjera det enklare å kunne støtta fleire ulike databasesystem. PHP 5.2 introduserte omfattande forbetringar innan minnehandtering som forbetra ytinga og ressursbruk i forhold til eldre versjonar.
For tida, per november 2008, er PHP 6 framleis under utvikling. Denne versjonen vil mellom anna innehalda støtte forunicode,namnerom og innebygdbytecode-cache.
PHP er utvilsamt populært, og held ennå stand mot språk som først i nyare tid har blitt populære å nytte for nettet, som til dømesRuby – medRuby on Rails – ogPython med rammeverketDjango.
Fyrste stabile versjon av PHP 5 vart sleppt i Juli 2004, men ein stor del av brukarbasen har framleis ikkje migrert til nyaste versjon, fra PHP4. PHP 5 har kritisert mellom anna for å bryte støtte for program utvikla for PHP 4.x, sjølv om mange meiner at dette ikkje er korrekt. Andre har retta kritikken mot PHPs dårlege støtte forobjektorientert programmering. Støtte for nokre av konsepta innan objektorientert programmering vart lagt til i PHP 3 og 4. Før PHP5 har støtta for objektorientert programmering vore svært mangelfull, men mykje av dette har blitt retta på i PHP5.
Sjølv om ein finn grensesnitt mot ulike løysningar for grafiskebrukargrensesnitt, brukar ein PHP som oftast til utvikling av underliggande program på dynamiskenettsider, den delen av ein applikasjon som behandlar informasjonen påtenaren og sender den tilklienten.
PHP har etter kvart fått støtte for mange ulikedatabasesystem, manipulering av bilete (via ImageMagick eller GD), filhandtering,XML, handtering av tekst,PDF og så vidare. EksempelsvisMediaWiki, som er applikasjonen somWikipedia køyrer på, er i all hovudsak utvikla i PHP.
Eksempel på applikasjonar som ofte blir skrivne i PHP:
KombinasjonenLinux,Apache,MySQL,PHP vert ofte kallaLAMP, og har blitt eit utbreitt uttrykk for denne samlinga av fri programvare som til saman er alt som trengst for å driva ein webstad (einvevtjenar).
Alternativt kan ein nytta kombinasjonenWindows,Apache,MySQL,PHP,WAMP.
Ei PHP-fil,filnamn.php, kan innehalda både PHP-sekvensar og annan tekst, som t.d.HTML.PHP-kode må skrivast innanfor særskilde merkje slik at Apache-programmet skjønar at dette skal tolkast før det vert skrive ut. Ein skriv:
PHP verte lese i linjer og kvar linje kan seia noko om variablar, funksjonar med og utan parametrar, kommentarar mm.
<?php//dette er ein kommentar på éi linje/* Denne kommentaren gårover fleire linjer */print"Dette er ein funksjon utan parametrar";//Alle funksjonar må avsluttast med semikolon$var='stein';//Her definerer vi ein variabel, som sidan kan nyttast i heile php-dokumentet.if($var='tre')//Her vert det gjort ein logisk test og køyrer funksjonen innanfor råmene under dersom SANN{echo"Variabelen er 'tre'";}else// og om testen over skulle vera USANN køyrer denne koden.{echo"variabelen er noko anna";}?>Eller
Både «print» og «echo» er innebygde funksjonar («language constructs») for å skriva ut data.
ClassPerson{public$fyrst;public$sist;publicfunction__construct($f,$l){$this->fyrst=$f;$this->sist=$l;}publicfunctionhelsing(){return"Hei, eg heiter{$this->fyrst}{$this->sist}.";}publicfunctionstatiskHelsing($fyrst,$sist){return"Hei, eg heiter$fyrst$sist.";}}$han=newPerson('Ivar','Aasen');$ho=newPerson('Hulda','Garborg');echo$han->helsing();// sender ut "Hei, eg heiter Ivar Aasen."echo'<br />';echo$ho->helsing();// sender ut "Hei, eg heiter Hulda Garborg."echo'<br />';echoPerson::statiskHelsing('Ivar','Aasen');// sender ut "Hei, eg heiter Ivar Aasen."