Guide: PHP- & MySQL-innføring: Kapittel 3

Kontrollering av verdier

Det er nok en gang klart for et nytt kapittel i vår PHP-guide. Nå ser vi på hvordan vi kan utføre ulike handlinger basert på betingelser.

Mer om løkker - for

Den mest kompliserte løkketypen er for, som har følgende syntaks:

for (uttrykk1; uttrykk2; uttrykk3)
{
funksjon(er)
}

Først blir uttrykk1 utført, og det kun én gang. Denne inneholder normalt deklarering av en variabel. Deretter blir selve sjekken av uttrykket utført (uttrykk2). Viser dette uttrykket seg å være usant vil for-løkken stoppes. Er den sann fortsetter den, og utfører uttrykk3.

Det høres kanskje vanskelig ut, men se på det følgende eksempelet. Vi har tatt utgangspunkt i det samme som vi gjorde ved eksemplene på while- og do-while-eksemplene.

for ($nummer = 1; $nummer <= 10; $nummer++)
{
    echo "Dette er linje nummer $nummer<br>";
}

Kjører vi dette vil vi få akkurat samme utfall som ved de forrige eksemplene. Prøv selv!


La oss bruke det i praksis!

Eksemplene vi nå har sett på fungerer fint, men de har liten nytte i praksis. La oss bruke det vi har lært i praksis til å estimere kvadratroten av et tall, la oss si 81. Riktignok har PHP en fin funksjon som selv sier hva kvadratoroten er (sqrt()), men det er mye morsommere å gjøre det selv. Gjetningen starter med at "1" er kvadratroten, og forbedrer etter hver kjøring gjetningen.

For å gjøre dette må vi kunne litt grunnleggende matematikk i PHP. Det er selvsagt svært enkelt. * indikerer multiplikasjon (ganging), / indikerer divisjon (deling), - indikerer minus, osv.

$nummer = 81;
$gjett = 1.0;
$presisjon = 0.0000001;
$gjett_rot = $gjett * $gjett;

while (($gjett_rot - $nummer > $presisjon) or
       ($gjett_rot - $nummer < - $presisjon))
{
  echo "Jeg gjetter at kvadratroten av $nummer er $gjett<br>";
  $gjett = ($gjett + ($nummer / $gjett)) / 2;
  $gjett_rot = $gjett * $gjett;
}
echo "$gjett er kvadratroten av $gjett_rot";

Kjører vi dette skriptet skal det se ut noe som dette:


Dette kan imidlertid virke litt vanskelig og uoversiktlig for mange, spesielt de som ikke har så mye kjennskap til matematikk. Studer koden nøyere, og test gjerne ut forskjellige ting selv!