PHP (PHP: Hypertext Preprocessor) är ett populärt skriptspråk som används flitigt på många webbsidor världen över. I den här artikeln har jag tänkt att ta upp grunderna i PHP. Artikeln är indelad i dessa delar:
Artikeln kommer ge dig grundläggande kunskaper inom PHP, vill du sedan gå vidare får du göra det på egen hand. Din absolut bästa referens när du kodar är PHP-manualen som du når på www.php.net. Fler länkar som kan vara bra att ha till fortsatta studier finner du under rubriken "Tips & trix" längst ner i artikeln.
Lycka till!
Ett så kallat Hello world-skript är ett exempel på hur man skriver ut text i olika programmering- och skriptspråk. Det brukar ses som det mest grundläggande, och därför är det inte mer än rätt att vi börjar med det. I PHP skriver man ut "Hello world" med följande kod:
<?phpecho "Hello world";?>
All PHP-kod skrivs mellan taggarna <?php och ?>. Utanför dessa kan du skriva HTML precis som vanligt. Raden echo "Hello world"; talar om att Hello world ska skrivas ut. echo säger att någonting ska skrivas ut, och mellan citattecknen skrivs det som ska skrivas ut. Observera att en rad PHP-kod avslutas med ett semikolon (;).
<?php
?>
echo "Hello world";
echo
Grattis, du har just skrivit ditt första PHP-skript! Svårare än så är det faktiskt inte, även om detta är väldigt grundläggande.
Det är väldigt användbart att kunna kommentera sin kod. På så sätt får man en mer strukturerad kod och kan lättare uppdatera eller ta bort delar av koden vid ett senare tillfälle. Det finns tre olika metoder man kan använda sig av vid kommentering av PHP-kod, här är de:
Metod 1
<?php // En enkel kommentar?>
Metod 2
<?php # En enkel kommentar?>
Metod 3
<?php /*Detta är enkommentarsom sträcker sigöver flera rader.*/ ?>
Allt som skrivs med detta kommenteringsmönster kommer att ignoreras av motorn och inte exekveras, utan bara finnas i PHP-filens källkod.
Variabler finns i stort sätt i alla program- och skriptspråk. Så har du programmerat förut så är du säkerligen bekant med begreppet. En variabel är en "informationsbehållare" lite snabbt förklarat. En variabel kan innehålla en sträng, ett heltal, ett decimaltal eller någonting annat.
Att skapa en variabel är väldigt enkelt i PHP. Till skillnad från andra språk, till exempel Java, behöver du inte deklarera vilken typ av variabel (sträng, heltal, osv) du vill använda.
En PHP-variabel skapas genom att inleda en rad med ett dollartecken ($), följt av variabelns namn och sist innehållet i variabeln. Ett strängvärde omges till skillnad från andra datatyper av citattecken (").
Ett variabelnamn får innehålla både bokstäver (a-z) och siffror, men måste börja med en bokstav. I PHP är punkt (.) decimaltecken, inte kommatecken (,) som du kanske är van vid.
<?php$variabelnamn = "Detta är en sträng.";$heltal = 8;$decimaltal = 3.14;?>
Vi provar att lägga ihop de två saker vi har lärt oss hittills: Att skriva ut text plus variabelhantering. Vad blir det? Skriva ut värdet i en variabel, såklart.
<?php$text = "Hello world!";echo $text;// Skriver ut "Hello world!"?>
En vektor (eng: array) är en typ av variabel. En vektor kan, till skillnad från en "vanlig" variabel innehålla flera olika värden. Man skiljer mellan värdena i en vektor med så kallade nycklar (index). Som standard har det första värdet index 0, det andra 1, tredje 2 och så vidare. Vi tar ett exempel.
<?php$vektor[] = "Sträng 1"; //Index 0$vektor[] = "Sträng 2"; //Index 1$vektor[] = "Sträng 3"; //Index 2$vektor[] = "Sträng 4"; //Index 3?>
Mellan [ och ] ska nyckeln egentligen stå. Men i och med att vi använder oss av standarden (start från 0) så behöver vi inte skriva någonting där. Du kan sedan skriva ut, till exempel, sträng 3 med koden:
<?phpecho $vektor[2];?>
Du kan definiera egna nycklar om du vill. Du skulle kunna skriva:
<?php$vektor[7] = "Sträng 1"; //Index 7$vektor[14] = "Sträng 2"; //Index 14$vektor[25] = "Sträng 3"; //Index 25$vektor[31] = "Sträng 4"; //Index 31?>
Och då skriva ut sträng 3 med följande kod:
<?phpecho $vektor[25];?>
Operatorer används för att jämföra eller ändra värden, från till exempel en variabel. De kan användas i bland annat villkorssatser (läs nedan) och vid matematiska uträkningar. Här är de vanligaste operatorerna.
Matematiska:
Jämförande:
Logiska:
* = Två stycken |
Hur kan vi bädda in detta i ett funktionellt skript? Vi bygger en liten miniräknare som ett exempel.
<?php$tal1 = 6;$tal2 = 8;$summa = $tal1 + $tal2;echo $summa;//Skriver ut 14?>
Jag tror inte detta ska vara så svårt att förstå. Vi använder operatorn "+" för att addera variablerna $tal1 och $tal2 med varandra. Summan sparas i variabeln $summa och skrivs sedan ut.
En villkorssats är en viss kod som körs om ett eller flera villkor uppfylls. Här har vi användning av operatorerna vi nyss lärde oss. Det finns två olika villkorssatser i PHP: if-satsen och switch-satsen.
If-satenVi börjar med if-satsen som är den vanligaste. Grunden för en if-sats ser ut så här:
<?phpif(Villkor) {Kodblock}?>
Med hjälp av operatorer skriver du ett (eller flera) villkor inom parenteserna. Innanför de två måsvingarna ({ och }) skriver du koden som du vill ska köras om villkoret uppfylls. Koden innanför måsvingarna brukar kallas för block.
{
}
Kommer du ihåg operatorn "<"? Den betyder "mindre än". Vi slänger in den i en if-sats.
<?php$tal1 = 5;$tal2 = 7;if($tal1 < $tal2) {echo "Fem är mindre än sju.";}//Skriver ut: Fem är mindre än sju.?>
Vi skapar först två variabler. Sedan kollar vi, med hjälp av en if-sats, om $tal1 är mindre än $tal2. Om så är fallet så skriver vi ut en text, och 5 är mindre än 7, men det vet du nog redan.
Vi lägger till ett else-block i vår if-sats. Koden inom else-blocket körs om villkoret inte uppfylls.
<?php$tal1 = 14;$tal2 = 9;if($tal1 > $tal2) {echo "Fjorton är större än nio.";} else {echo "Fjorton är inte större än nio.";}//Skriver ut: Fjorton är större än nio.?>
I exemplet är else-blocket egentligen ganska onödigt, eftersom variablerna har statiska värden och fjorton alltid kommer vara större än nio. Men när du senare börjar jobba med dynamiska värden och information som skickas från besökare så är else-blocket ett måste.
Det finns även ett elseif-block. Det låter oss skapa flera olika block med olika villkor. Om inte det första villkoret uppfylls, så testas nästa och så vidare.
<?php$mittnamn = "Emil";if($mittnamn == "Marcus"){echo "Jag heter Marcus.";}elseif($mittnamn == "Emil"){echo "Jag heter Emil.";}else{echo "Jag heter varken Marcus eller Emil.";}//Skriver ut: Jag heter Emil.?>
Switch-satsenEn switch-sats är en annan typ av villkorssats. Den kan vara användbar när du vet vad variabeln du vill testa kan tänkas innehålla. Så här kan en enkel switch-sats se ut:
<?php$mittnamn = "Emil";switch($mittnamn) { case "Marcus": echo "Jag heter Marcus."; break; case "Emil": echo "Jag heter Emil."; break; case "Erik": echo "Jag heter Erik."; break; default: echo "Jag heter varken Marcus, Emil eller Erik." break;//Skriver ut: Jag heter Emil.}?>
Jag tror denna kod förklarar sig själv i stort sätt. Satsen påbörjas med switch följt av variabelnamnet som ska testat inom två parenteser. De olika kodblocken startas respektive avslutas med case "villkor": samt break;. Blocket "default" körs om inget av villkoren uppfylls.
switch
case "villkor":
break;
PHP har rikligt med inbyggda funktioner, det finns tusentals. Självklart är det näst intill omöjligt att kunna alla dessa funktioner i huvudet. Du kan vara en hur duktig PHP-programmerare som helst, men du kommer säkerligen aldrig kunna alla funktioner utantill. Men som tur är finns alla funktioner, och instruktioner till hur de används, samlade på ett ställe: I PHP-manualen.
Inbyggda funktioner
Att det finns många funktioner i PHP är dock ingen ursäkt till att inte lära sig några alls. De vanligaste funktionerna bör du känna till och kunna hantera. Jag kommer nu gå igenom hur man använder en av alla dessa tusentals funktioner som finns, själva hanteringen är i princip likadan i alla funktioner. I exemplet kommer jag använda mig av funktionen strtoupper(), som konverterar alla tecken i en sträng till versaler (string to upper case).
<?php$test = "detta är en sträng";$test = strtoupper($test);echo $test;//Skriver ut: DETTA ÄR EN STRÄNG?>
Denna kod skapar först variabeln $test och ger den ett strängvärde. Sedan anropas funktionen strtoupper, och variabeln $test skickas med som ett argument. Nu kommer alla bokstäver i strängen konverteras till versaler. Vi sparar den "nya" strängen i samma variabel, vi skriver över den helt enkelt.
Du behöver dock inte spara returvärdet från en funktion i en variabel innan du skriver ut det. Följande kod ger samma resultat som ovan:
<?php$test = "detta är en sträng";echo strtoupper($test);//Skriver ut: DETTA ÄR EN STRÄNG?>
Egna funktioner
Det är dessutom möjligt, och även väldigt användbart, att skapa egna funktioner. Det görs så här:
<?phpfunction namn(argument) {kodblock}?>
Börja med function följt av namnet på funktionen du vill skapa. Inom parenteserna skriver du vilka argument som ska finnas till funktionen. Argument är dock inte obligatoriskt. Vill du ha fler argument så skiljer du dem åt med ett kommatecken.
function
Vi tar och förbättrar miniräknaren vi gjorde tidigare som ett exempel.
<?phpfunction mini($tal1, $tal2) {$summa = $tal1 + $tal2;return $summa;}echo mini(12, 8);//Skriver ut: 20?>
echo mini(12, 8); betyder att värdena 12 och 8 skickas till funktionen "mini", resultatet ska sedan skrivas ut. function mini($tal1, $tal2) skapar en funktion vid namn "mini" och sparar värdena som skickats till funktionen i variablerna $tal1 och $tal2.
echo mini(12, 8);
function mini($tal1, $tal2)
Variablerna adderas sedan och sparas i variabeln $summa. return $summa; innebär att det är värdet i $summa som skickas tillbaka från variabeln och sedan skrivs ut.
return $summa;
Slingor används för att återupprepa en kod ett visst antal gånger. Det finns tre stycken olika slingor i PHP:
While-slinganWhile-slingan kör ett visst kodblock så länge ett villkor uppfylls. Precis som med if-satserna skriver vi villkoret med hjälp av operatorerna vi lärde oss tidigare. Här är ett exempel på en while-slinga:
<?phpwhile(5 < 10) {echo "Fem är mindre än tio.";}?>
Detta är en så kallad "evighetsslinga". Kodblocket kommer köras så länge 5 är mindre än 10, och eftersom så alltid är fallet kommer strängen skrivas ut om och om igen.
<?php$i = 0;while($i <= 100) {echo "$i. <br/>";$i++;}?>
Här är en annan while-slinga. Den kommer köras så länge $i är mindre eller lika med 100. Kodblocket består av en rad som skriver ut $i och gör ett radbyte, samt en rad som ökar $i med ett. Slingan kommer alltså skriva ut siffrorna 0-100.
For-slingan
Den andra slingan är for-slingan. Här är ett exempel på en sådan slinga. Den här slingan kommer skriva ut precis samma sak som while-slingan ovan.
<?phpfor($i=0;$i <= 100;$i++){echo "$i. <br/>";}?>
Som du ser är for-slingan indelad i tre delar, separerade med semikolon (;). Först deklarerar vi kontrollvariabeln som vi ska använda. Sedan skriver vi villkoret, och sist skriver vi vad som ska hända efter att kodblocket har körts en gång.
<?phpfor(variabeldeklarering;villkor;efter kodblocket){Kodblock}?>
Foreach-slingan
Den tredje och sista slingan är foreach-slingan. Den används i stort sätt bara vid vektorhantering. Vi skapar en vektor med ett par värden. Följande slinga plockar ut vektorns nycklar och värden och skriver ut dem.
<?php$vektor = array("neme", "Arood", "frisko", "Tindra");foreach($vektor as $nyckel => $varde) {echo "$nyckel:$varde ";}//Skriver ut: 0:neme 1:Arood 2:frisko 3:Tindra?>
Jag tror inte att det ska vara så svårt att förstå. Slingan går igenom vektorn och sparar nycklarna och värdena i två variabler som sedan skrivs ut.
Nu är artikeln slut och du har förhoppningsvis lärt dig en hel del. För att få dina PHP-studier att rulla på så bra som möjligt har jag tänkt att dela med mig av ett par länkar som kan vara bra att känna till.
Vi har dessutom en hel del duktiga PHP-kodare här i forumet på W3Sidan. De hjälper dig gärna om du stöter på några problem eller undrar någonting.
Ett väldigt bra sätt att lära sig på är att ladda ner färdiga PHP-skript för att sedan sitta och bryta ner koden i mindre delar och ta lärdom av det. Försök sen koda en egen version av skriptet.
Skribent: Emil Friskhttp://www.w3sidan.net/profil/frisko
Var innehållet i den här artikeln användbar? Har du några övriga kommentarer?
Hur mycket gillade du den här artikeln? Ju fler hjärtan desto bättre.