PHP

Slingor och villkorssatser

För att kunna hantera val i nästan alla slags programmeringsspråk finns det i språken två konstruktioner som kallas slingor och villkorssatser. Detta är ett sätt för programmeraren och säga att en viss sak ska hända om ett visst villkor är uppfyllt och kanske att något annat ska hända annars. Två exempel på slingor är for och while. Dessa fungerar precis som i JavaScript och har följande utseende i PHP.

while  (sanningsvärde)
{
	utför satser
}

while-satsen utför alltså ett visst kodsegment så länge ett villkor är uppfyllt. Ett exempel är :

"så länge det finns äpplen kvar i trädet, plocka ett äpple"

När sista äpplet är plockat är inte länge villkoret att det ska finnas äpplen kvar uppfyllt och skriptet, eller i det här fallet den som plockar äpplen, går vidare.

for ($i = 1; $i <8;i++)
{
	echo "$i är ett tal mellan 1 och 7";
}

For-satsen består av de tre delarna initieringsdel, villkorsdel och uppräkningsdel. Vid initiering bestämmer vi vad den variabel som senare förekommer i villkoret ska heta och vad dess värde ska vara från början. Villkorsdelen körs sedan varje varv i slingan som snurrar tills villkoret längre inte är uppfyllt. I fallet ovan är villkoret uppfyllt när variabeln $i är mellan 1 och 7, men inte 8.

Uppräkningsdelen har kanske ett missvisande namn eftersom det lika gärna kan röra sig om nedräkning. Men i vårt exempel är det just uppräkning och för varje varv i slingan (eller loopen som det också kallas) räknas $i upp med 1. Det här innebär att $i kommer att få ett värde på över 7 efter ett tag och slingan avbryts. Skriptet fortsätter vidare med nästa instruktion.

I PHP finns ytterligare en behändig slinga att använda sig av. Det är foreach som är ett lättanvänt verktyg för programmeraren och som gör en hel del av jobbet. Foreach är bra att använda när man har en vektor och vill komma åt dess värden utan att behöva veta vad variablerna i vektorn heter. Det här är vårt exempel sen tidigare och vi ska nu titta mer på hur foreach fungerar :

<HTML>
	<HEAD>
		<LINK HREF="stilmall.css" TYPE="text/css" REL="stylesheet">
		<TITLE>Träning</TITLE>
	</HEAD>
<BODY>

<TABLE>
<TR>
	<TH>Nyckel</TH>
	<TH>Aktivitet</TH>
</TR>

<?php
$activities = array('Kattjakt', 'Spårning', 'Sök', 
		'Lydnad', 'Spårning', 'Lekar', 
		'Lydnad/Spårning');


foreach($activities as $key => $value)
{
	echo "<TR>";
		echo "<TD>$key</TD>";
		echo "<TD>$value</TD>";
	echo "</TR>"; 
}

?>
</TABLE>

</BODY>
</HTML>

För varje element i vektorn kommer foreach att plocka ut dess nyckel och värde och spara dessa i de lokala variablerna $key och $value. Sen skriver vi ut veckodagarna i första tabellcellen och träningsmomentet i den andra cellen. Varje gång som kodblocket inne i foreach-satsen utförs skrivs en ny rad ut i tabellen.

Precis som i JavaScript finns villkorssatserna if, else if och else i PHP. De fungerar också på samma sätt men vi ska titta lite mer på dem här för att repetera.

If fungerar alltså på följande sätt

Om (någonting är sant) 
{
	utför en viss sak
}
if ($antal == 0){
	echo "Antalet är lika med 0";
}

På if-satsen går det att koppla flera if else eller bara else. If else testar ett nytt villkor och man anger vad som ska hända om villkoret är sant. Else är det som ska hända i if-satsen om villkoret inte är uppfyllt, eller för en if else if om inget av villkoren är sant.

if ($antal == 0){
	echo "Antalet är lika med 0";
}
else {
	echo "Antalet är lika med " . $antal;
}
eller
if ($antal == 0){
	echo "Antalet är lika med 0";
}
else if ($antal == 250){
	echo "Antalet är lika med 250";
}
else {
	echo "Antalet är lika med " . $antal;
}

Testa att skapa några egna slingor/villkorssatser och skriv ut olika saker i olika delar av villkorssatsen.