<< Tilbage

PHP if, then, else og switch

IF-sætninger

Forestil dig at du på din side har et felt hvor brugeren kan skrive sin alder. Du vil gerne gøre ét hvis han er over 18, og noget andet hvis dette ikke er tilfældet. Eller hvis du foretager et regnestykke, og vil tjekke om resultat er over 0, og reagere herpå. Her kommer if-sætninger ind i billedet. De bruges til at sammenligne variabler, tjekke om variabler er det ene eller det andet, om de indeholder bestemte ord osv.

Vi springer lige ud i det med et eksempel:

Kode:
1.
2.
3.
4.
5.
6.
<?php
if (3)
{
    echo 
"Sørme jo, 6 er større end 3";
}
?>
Resultat:
Sørme jo, 6 er større end 3

Ved at skrive if fortæller vi den at der skal tjekkes et eller andet. Det vi gerne vil tjekke står i den efterfølgende parentes, nemlig om 6 er større end 3. Hvis denne såkaldte "betingelse" er sand, så skal den udføre koden der står mellem { og } (tuborgklammer hedder de). Man kan altså læse eksemplet på følgende måde: Hvis 6 er større end 3, så skriv teksten ud på skærmen.

Man kan også kombinere med variabler:

Kode:
1.
2.
3.
4.
5.
6.
7.
8.
9.
<?php
$tal1 
50;
$tal2 30;

if (
$tal1 $tal2//Er variablen $tal1 større end $tal2?
{
    echo 
"Ja da!";
}
?>
Resultat:
Ja da!

Læg mærke til at vi nu to gange har brugt tegnet >. Dette tegn kaldes en "operator", og > betyder (som vi kender fra matematikkens verden) større end. Herunder ses en liste med de operatorer man kan benytte i sin if-sætning:

Operator Betydning
> Større end
< Mindre end
== Lig med
!= Forskellig fra (ikke lig med)
>= Større eller lig med
<= Mindre eller lig med

Herunder kan du se et eksempel hvor nogle af de andre operatorer bliver benyttet.

Kode:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?php
$tal1 
4;
$tal2 10;

if (
$tal1 == $tal2//Husk 2 lighedstegn for at tjekke om de to variabler er ens
{
    echo 
"De to variabler er lig hinanden";
}

if (
$tal1 <= $tal2//Er værdien af $tal1 mindre eller lig $tal2
{
    echo 
"Yeps, mindre eller lig med";
}
?>
Resultat:
Yeps, mindre eller lig med

Else

Med else kan man eksekvere (udføre) noget andet kode hvis if-sætningen ikke er sand. Det vises bedst med et eksempel:

Kode:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
<?
if (74 100)
{
    
//Hvis 74 er større 100, udfør denne kode
    
echo "Det er sørme rigtigt";
}
else
{
    
//Hvis det ikke er tilfældet, udfør denne kode
    
echo "Desværre ikke";
}
?>
Resultat:
Desværre ikke

Selvfølgelig ved du godt at 74 ikke er større end 100, men forestil dig at du på din hjemmeside har en formular hvor dine brugere kan tilmelde sig et nyhedsbrev med deres e-mail adresse. Inden du gemmer brugerens e-mail adresse vil det være en god ide at tjekke om det er en rigtig e-mail. Er det dét, så gem e-mailen, er det ikke, så vis en fejlmeddelelse på skærmen.

Elseif

Oversættes "ellers hvis", og kan bruges når man vil kontrollere en variabel for flere forskellige værdier. Et eksempel:

Kode:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<?
$tal 
10;

if (
$tal 5)
{
    echo 
"Tallet er mindre end 5";
}
elseif (
$tal 8)
{
    echo 
"Tallet er mindre end 8";
}
elseif (
$tal 11)
{
    echo 
"Tallet er mindre end 11";
}
else
{
    echo 
"Ingen af delene, tallet må være større end 10";
}
?>
Resultat:
Tallet er mindre end 11

Skal læses på følgende måde:
Er værdien af $tal mindre end 5, så skriv noget ud på skærmen. Er den ikke det, så tjek om tallet er mindre end 8. Er det heller ikke mindre end 8, så tjek om det er mindre end 11. Er tallet heller ikke mindre end 11, så skriv "ingen af dele..." på skærmen.

OR, AND

Sommetider vil man gerne tjekke flere ting på én gang (hvis det ene OG det andet ELLER det tredje er opfyldt, så gør noget bestemt). ELLER (or) repræsenteres med || og OG repræsenteres med &&. Eksemepl:

Kode:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<?php
$tal 
15;

if (
$tal 10 && $tal != 15)
{
    echo 
"Tallet er større end 10 men ikke lig 15";
}

if (
$tal 10 || $tal 5)
{
    echo 
"Tallet er enten større end 10 eller mindre end 5";
}
?>
Resultat:
Tallet er enten større end 10 eller mindre end 5

I linje 4 tjekker vi om $tal er større end 10 OG at $tal ikke er lig med 15. Begge skal være sande før den udføre det der står mellem { og }. Tallet er større end 10, men er ikke forskellig fra 15, derfor går den ikke videre. I linje 9 tjekker vi om $tal er større end 10 ELLER at $tal er mindre end 5, og da tallet er større end 10 går den videre.

Switch

Hvis man skal sammenligne en variabel med mange forskellige værdier (er den det ene, det tredje, det fjerde, det femte osv.), så kan man med fordel bruge switch. Vi tager udgangspunkt i et eksempel:

Kode:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<?php
$livret 
"Pizza";

switch(
$livret)
{
    case 
"Frikadeller":
        echo 
"Dansk mad er godt";
        break;
    case 
"McDonalds":
        echo 
"Fy, junkfood";
        break;
    case 
"Pizza":
        echo 
"Er du italiener?";
        break;
    default:
        echo 
"Jeg kender det ikke, men det er sikkert godt";
        break;
}
?>
Resultat:
Er du italiener?

Bemærk: i parentesen efter switch skrivers den variablen man gerne vil undersøge. Husk også break for at fortælle den at "casen" er slut. I linje 15 bruges "default", dvs. hvis ingen af de andre "cases" bliver opfyldt.

Leder du efter billige usb stik?, så kan du få et Billigt USB stik hos usb.dk

Spørgsmål/forslag/kommentarer rettes til webmaster@phpartikler.dk

Billige USB stik