PHP-guide

2. Grund
2.1 Var?
2.2 Utskrift
2.3 Variabler
2.4 Om-satser
2.5 Loopar
2.6 Listor
2.7 Kommentarer
__________________________

2. Grund

De mest nödvändiga begrepp som en PHP-kodare måste kunna är de som jag tar upp här. Sen vid nästa kapitel så går jag in på lite mer funktioner som gör att besökarna (och du själv) kan ha roligt med.


2.1 Var?

Nu kommer vi till det allra första steget in i scriptvärlden med PHP: Var skriver man in själva PHP-koden?
Det enkla svaret på den är, rakt i din HTML-kod! Man kan blanda PHP med HTML precis som man vill men rekommenderat är att samla all PHP-kod överst och HTML-koden underst för att få lite sortering. Det blir lättare att läsa då.

Så här kan ett typiskt PHP-dokument se ut (med namnet index.php):

<html>
<head>
<title>PHP-test</title>
</head>
<body>
<?php

?>
</body>
</html>

All PHP-kod du ska skriva skriver du mellan <?php och ?>. Du kan göra många sådana PHP-delar genom ditt dokument.

Notis: Alltför många guider lär ut att man ska använda <? och ?> istället, visst, det fungerar i de flesta fall och då endast om servern har en inställningen "short_tags" påslaget. Långt ifrån alla har det eftersom det kan bli konflikter med XML-taggen som börjar likadant. Därför bör alla ha som vana att skriva <?php istället.


2.2 Utskrift

För att skriva ut text från ditt PHP-script så använder du (till att börja med) funktionen echo (finns också under namnet print, men används lite annorlunda då). Användandet av echo är simpelt som tusan.

<?php
echo "En bit text";
?>

Ja vad händer nu tro? Kan det vara så att PHP-scriptet skriver ut texten "En bit text" (utan citationstecken)? Jajamensan, visst är det så. citationstecknena finns till för att gruppera ihop texten till en så kallad sträng. Strängar är precis just det, textbitar.

Notis: Här är första biten som kan skilja sig från programmerare till programmerare, vilken sorts tecken man använder för att gruppera texter. Man kan välja mellan ' och ", det är lite skillnad med hur PHP reagerar på dem men det går jag igenom senare. Skillnaden är inte stor så det är nästan bara en smaksak hur man föredrar att koden ska se ut. Inget är fel, båda är rätt.

Sen är det ju den biten med semikolonet. För varje avslutad kommandorad (då något utförs) så måste det finnas ett semikolon. Det är för att PHP ska veta hur den ska uppdela allting. Så glöm dem inte.


2.3 Variabler

Variabler är, som man kanske kan höra på namnet, något som varierar. Det är alltså en bit i datorns minne där man kan lagra det man känner för. Text, tal, listor osv. Dessa kan man sen be PHP att skriva ut (med hjälp av echo t ex).

<?php
$envariabel 
"En bit text";
echo 
$envariabel;
?>

Om ni är tillräckligt kloka kanske ni ser att jag har döpt variabeln till "envariabel". Dollartecknet framför variabelnamnet säger till PHP att det är en variabel, inget annat. Skulle jag inte skriva det där så skulle PHP tro att det var något annat och allt skulle bli fel. Jag använder också variabeln precis som det vore text när jag skriver ut den, men utan citationstecknena.

Notis: Använder man " skulle man kunna skriva: echo "$envariabel"; Det skiljer sig lite ifrån användandet av '. Skriver man: echo '$envariabel'; så kommer PHP att skriva ut texten "$envariabel" men använder man " så skriver den ut innehållet i variabeln "envariabel". Lite rörigt kanske, men testa gärna.

<?php
$envariabel 
"En bit text";
$enannanvariabel $envariabel " och lite mer";
echo 
$enannanvariabel ", men inget mer";
?>

Variabler används som sagt precis som text (utan citationstecken). För att gruppera samman variabler och vanlig text (eller flera variabler om man så vill) så används en vanlig punkt (.). Den sammanfogar som om båda sidorna vore text, dvs innehåller en variabel ett tal så omvandlar den det till en sträng först.

För att sätta ett tal till en variabel istället så skippar du helt enkelt bara citationstecknena. Exempel:

<?php
$etttal 
57;
echo 
"Talet är: " $etttal;
?>

2.4 Om-satser

En om-sats (if på engelska) är ett sätt att få olika saker att hända beroende på om en viss fråga stämmer eller inte. Lite kod som vanligt:

<?php
$namnet 
"Tomas";
if (
$namnet == "Tomas")
{
    echo 
"Namnet är faktiskt Tomas";
}
?>

If-satser är uppbyggda i tre delar. Del ett består av ordet if som säger åt PHP att det kommer en if-sats nu. Andra delen är det som avgör om PHP ska utföra del tre som består av en samling kommandon. Del tre är omringad med fågelvingar, en i början och en i slutet. Stämmer inte del två så kommer den hoppa över allt som är mellan fågelvingarna.

Notera att jag har gjort dubbla elikamedtecken, det betyder att PHP ska jämföra, inte tilldela som ett elikamedtecken gör. Skulle vi skrivit if ($namnet = "Tomas") så skulle den tilldelat variabeln $namnet "Tomas" och sen kollat om det lyckades eller inte. Andra så kallade operatorer (= och == är två stycken) är dessa:

= Tilldelar.
== Är lika med.
!= Är inte lika med.
< Är mindre än.
<= Är mindre än eller lika med.
> Är större än.
>= Är större än eller lika med.

Ett litet exempel:

<?php
if (5)
{
    echo 
"1 är mindre än 5";
}
if (
>= 4)
{
    echo 
"4 är mer eller lika med 4";
}
if (
7)
{
    echo 
"Hit kommer den inte komma, 3 är ju inte mer än 7";
}
?>

Sen finns det 'else' också som ett komplement till if-satsen, den delen utförs om if-delen inte utfördes.

<?php
if (== 6)
{
    echo 
"4 är lika med 6";
}
else
{
    echo 
"4 är inte lika med 6";
}
?>

Man kan kombinera if och else till en så kallad elseif.

<?php
if ($namn == "Tomas")
{
    echo 
"Namnet är Tomas";
}
elseif (
$namn == "Göran")
{
    echo 
"Namnet är Göran";
}
else
{
    echo 
"Namnet är något helt annat";
}
?>

2.5 Loopar

En loop är en kodsnutt som gör att man kan repetera en bit kod ett viss antal gånger eller till en variabel får ett visst värde. Loopar är mycket användbara, så kom ihåg hur du skapar dem. Det finns två sorters grundloopar, while och for. While är den lättaste av dem, man kan tänka sig den som en if-sats som kör sin kod om och om igen till dess att "Del två" inte stämmer.

<?php
$tal 
1;
while (
$tal 5)
{
    echo 
"Talet är mindre än fem ("$tal ."). ";
    
$tal $tal 1;
}
?>

Har ni hängt med fullt ut så kommer ni nog lista ut vad som händer här innan ni kör scriptet. De flesta script kan man översätta rakt av. Vi kan testa med det där exemplet.

Tilldela $tal siffran 1.
Så länge $tal är mindre än 5
   Skriv ut "Talet är mindre än fem(talet). "
   Lägg till 1 till $tal

For-loopen är uppbyggd på ett litet annat sätt men annars är den nästan likadan.

<?php
for ($i=1$i<5$i=$i+1)
{
    echo 
$i;
}
?>

Detta ser ju helsnurrigt ut, men om man översätter den till en while-loop som gör samma sak kanske ni förstår bättre.

<?php
$i 
1;
while (
$i 5)
{
    echo 
$i;
    
$i $i 1;
}
?>

( ) är alltså uppdelad i tre delar och är separerade med semikolon (;). Den första delen körs när loopen startas, den andra är en if-sats som meddelar PHP om loopen ska börja (börja om) och den tredje körs när loopen har kommit till sitt slut.

Notis: En sak man kanske glömmer bort när man gör loopar är att ställa in villkoret ordentligt, vill man att den ska lista upp siffrorna 1 till 5 så ska man inte använda sig av $i<5 utan $i<=5 eller $i<6.


2.6 Listor

Man kan förklara listor lite kort som en samling variabler. Dessa variabler kan man tilldela ett nummer (eller en text) som man kan nå dem med senare, ungefär som ett variabelnamn.

<?php
$lista
[0] = "En lista";
$lista[1] = "Samma lista";
$lista[2] = "Och så vidare";

echo 
$lista[1] . $lista[0];
?>

Namnet på denna lista är just nu lista. Nummret inom klamrarna som finns direkt efter listnamnet är den så kallade nyckeln. Alla värden i en lista har en unik nyckel. Denna nyckel kan bestå av ett nummer eller en textbit. Dvs, du skriver istället för siffran en sträng (kom ihåg citationstecknena): $lista["En lista"] = "Samma lista";

Man kan lägga till ett värde i slutet av listan och låta PHP bestämma nyckeln, mycket praktiskt om man bara vill stoppa in massor av variabler som hör ihop i samma lista.

<?php
$lista
[] = "En lista";
$lista[] = "Samma lista";
$lista[] = "Och så vidare";

echo 
$lista[1] . $lista[0];
?>

Det man gör då är bara att ta bort nyckeln så klamrarna inte har något innehåll.


2.7 Kommentarer

En sak som inte är alltför viktig (enligt mig) när man kodar, men som är otroligt viktig om man ska dela med sig scriptet till någon och han/hon vill förstå mer av koden. Det är alltså bitar av koden som inte PHP bryr sig om, alltså bara underlättar för mänskliga läsare av scriptet.

<?php
$variabel 
"Hej"// En variabel fick värdet "Hej"
echo $variabel// Nu skrevs variabeln ut
?>

Vill man bara kommentera en rad så använder man dubbla snestreck (//), allt bakom de två snestrecken kan man skriva vad som helst, PHP bryr sig inte om det. Vill man däremot kommentera många rader och inte orkar skriva flera // så kan man använda sig av /* och */. Allt imellan dem blir en kommentar, och de sträcker sig över flera rader om man så vill.

Notis: Ibland kan det underlätta att man kommenterar sin egen kod för sig själv, så slipper man gå tillbaka dit där man läste hur man gjorde, plus att det fastnar bättre i skallen om man skriver ner vad som händer.