LIMSpec Wiki

PHP
PHP-logo.svg
ParadigmImperativt, funktionellt, objektorienterat, procedurellt
Gavs ut1995
Skapat avRasmus Lerdorf
UtvecklareThe PHP Group
Senaste version8.2.2 (02 February 2023)
DatatypsdisciplinDynamisk, svag
ImplementationerC
PlattformMultiplattform
LicensPHP License
Webbplatsphp.net

PHP, rekursiv akronym för PHP: Hypertext Preprocessor (ursprungligen Personal Home Page tools), är ett populärt skriptspråk som främst körs på webbservrar för att driva internetsajter med dynamiskt innehåll (det vill säga innehåll som genereras från till exempel databas eller besökarens formulärdata). Det finns dock också en CLI-applikation för PHP som gör att skript kan köras direkt, utan webbserver.

Skriptspråket är populärt och jämförs ofta med Active Server Pages (ASP) från Microsoft, eller Java Server Pages (JSP) från Sun Microsystems.

Historia

År 1994 skrev Rasmus Lerdorf en samling Perl-skript som han kallade PHP/FI (Personal Home Page / Forms Interpreter). Så småningom gjorde han om det med hjälp av programspråket C.

Andi Gutmans och Zeev Suraski hittade under sina universitetsstudier verktyget PHP/FI och skrev om det helt. År 1998 hade de lanserat den färdiga versionen av PHP 3.0.

Version 4 släpptes i maj 2000, med stöd för objektorienterad programmering. Den 13 juli 2007 meddelades att utvecklingen av PHP 4 skulle upphöra den 31 december 2007, men att man kommer släppa säkerhetsuppdateringar för PHP 4 fram till och med den 8 augusti 2008. Den 7 augusti 2008 släpptes version 4.4.9, som därmed blev den sista versionen av PHP 4.

Version 5 släpptes den 13 juli 2004, med förbättrat stöd för objektorientering.

Version 6 var tänkt att bidra med ett inbyggt stöd för Unicode tillsammans med andra förbättringar under utveckling, steget till version 6 valdes på grund av de stora förändringarna som behövde göras och arbetet påbörjades 2005. De stora förändringarna ledde dock till problem prestandamässigt men även till att hitta tillräckligt med programmerare som kunde införa förändringarna vilket försenade projektet[1], detta medförde istället 2009 att version 5.3 släpptes med flera av icke-Unicodefunktionerna från PHP 6. I mars 2010 lades projektet ner och de kvarvarande förbättringarna släpptes som version 5.4.[2]

Version 7 Eftersom version 6 aldrig släpptes valde man att hoppa över den för att inte blanda ihop de två versionerna.[3] Den 12 juni 2015 släpptes version 7.0.0 Alpha 1 med stöd för bland annat retur- och skalärtyper i funktionsdeklarationer och anonyma klasser.[4] Den första stabila versionen av PHP 7 släpptes den 3 december 2015.[5]

Version 8 Version 8.0 släpptes 26 november 2020. PHP 8 har bland annat stöd för JIT kompilering, Nullsafe operator på funktioner[6].

Syntax

PHP:s huvudsakliga uppgift är att fungera som ett filter. Källkoden tolkas av en interpretator kallad Zend Engine, och omvandlas till ett slutresultat i form av en textström som skrivs ut. Resultatet påverkas av indata som programmet får vid körning, oftast i form av instruktioner och text. Ofta används kommunikation med databaser för att presentera lagrad information. Mottagaren är oftast en webbläsare.

Här är ett klassiskt Hello World-program:

<?php
       echo 'Hello, World!'; 
?>

PHP tolkar bara programkod som är skriven inom dess avgränsare, vanligtvis <?php ?> om man använder senare versioner av PHP. Om servern är konfigurerad med short_open_tag = 1 (inte standard) kan avgränsarna skrivas <? respektive ?>. Allt som skrivs utanför dessa tolkas som vanlig text och skrivs ut direkt utan vidare behandling.[7] Anledning till detta är att man på ett enkelt sätt ska kunna bädda in PHP-kod i ett HTML-dokument, vilket är ett av de huvudområden där PHP används.[8]

Här är ett exempel på hur man kan blanda PHP med HTML:

<?php $page_title = 'sidans titel'; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
 "http://www.w3.org/TR/html4/strict.dtd">
<html>
 <head>
 <title><?php echo $page_title; ?></title>
 </head>
 <body>
 <p>Hello</p>
 </body>
</html>

Variabler använder prefix i form av en dollarsymbol och dess datatyp behöver inte specificeras i förväg. Till skillnad från funktioner och klasser, är variabler skiftlägeskänsliga.[9]

Det finns tre typer av syntax för kommentarer[10]:

  • /* */ som tillåter större stycken
  • // samt
  • # vilka används för enstaka rader.

Både enkla och dubbla citationstecken används för att omsluta strängvärden.

Om dubbla citationstecken används kan variabler läggas in enligt följande, till skillnad från enkla citationstecken.

$variabel = "två";

echo "ett + ett = $variabel"; // Skriver ut: ett + ett = två

echo 'ett + ett = $variabel'; // Skriver ut: ett + ett = $variabel

Exempel på en funktion

/**
 * Deklarerar funktionen
 */
function exempel()
{
    echo "Detta är ett exempel på en funktion och när jag vill anropa min funktion så syns denna text.";
}

// Anropar funktionen
exempel(); // Funktionen skriver ut texten ovan. 
// Och jag behöver ej ändra där exempel(); ligger ifall jag vill ha en annan text.

Maskot

Maskoten ElePHPant i form av ett kramdjur.

Maskoten för PHP-projektet kallas för ElePHPant och är en blå elefant med PHP-loggan på sidan. Den designades ursprungligen av Vincent Pontier.[11]

Referenser

Externa länkar