Guide: Kontrollering av verdier

PHP- & MySQL-innføring: Kapittel 3

If-else og boolske konstanter

Det er vanskelig å skrive interessante skript uten å la utførelsen til skriptet avhenge av noe. For å lage skikkelige skript må vi kunne utføre kontroller, for deretter å utføre handlinger basert på utfallet.

Det finnes to hovedtyper av kontroller - grener (branches) og sløyfer (loops). En gren utfører én enkel kontroll, og avhengig av utfallet velger den hvilken vei den skal gå. En sløyfe derimot, utfører denne kontrollen flere ganger. Etter at kontrollen er utført vil den begynne på kontrollen igjen, inntil ønsket antall kontroller er gjort.

If-else

If-else er den vanligste formen for å utføre en kontroll. Syntaksen er slik:

if (test av uttrykk)
{
    Utfør visse handlinger
}
else
{
    Utfør noen andre handlinger
}

Her blir først en test av ett eller flere uttrykk utført. Hvis uttrykket/uttrykkene stemmer, vil den boolske verdien TRUE returneres, og handlingene vil bli utført deretter. Er imidlertid uttrykket/uttrykkene usanne, slik at verdien FALSE returneres, vil ikke kommandoen(e) som står mellom klammene ({ og }) utføres. Det er her else kommer inn i bildet. Else sjekker ikke om noen uttrykk stemmer, den bare utfører én eller flere kommandoer som et følge av at testen av uttrykket/uttrykkene avslørte at uttrykket/uttrykkene var usanne.

Man trenger strengt tatt ikke bruke klammene i alle tilfeller, men det er god programmeringsskikk å gjøre det, for lesbarhetens skyld. For eksempel kan det bli vanskelig å finne ut hvilken if-spørring en else hører til hvis det ikke er markert med klammer.

Boolske konstanter

For å se om et uttrykk stemmer bruker vi operatoren if. Deretter kan vi bruke operatoren else, som utfører en eller flere kommandoer hvis uttrykket ikke stemmer. Den letteste formen for et uttrykk er de boolske verdiene TRUE og FALSE.

if (TRUE)
{
    echo "Dette vil alltid vises";
}
else
{
    echo "Dette vil aldri vises";
}

Som vi ser utfører vi en kontroll ved hjelp av if. Stemmer ikke det første uttrykket vil programmet automatisk hoppe ned til else og utføre kommandoen(e) der. Skulle vi ha skrevet dette så vi enkelt kunne forstått det hadde det sett slik ut:

HVIS SANT
    SKRIV "Dette vil alltid vises"
ELLERS
    SKRIV "Dette vil aldri vises"

Vi kan også utføre en motsatt kontroll, der vi kjører kontrollen if (FALSE):

if (FALSE)
{
   echo "Dette vil aldri vises";
}
else
{
   echo "Dette vil alltid vises";
}

Dette vil da være det tilsvarende "på norsk":

HVIS USANT
   SKRIV "Dette vil aldri vises"
ELLERS
   SKRIV "Dette vil alltid vises"

Eksemplene over har heller liten nytte i et virkelig skript - de er kun ment for å gi en enkel innføring. På neste side vil vi se på eksempler som du vil få mer bruk for i praksis.