if - PHP

Lær at udføre forskellig kode alt efter resultatet af en if () construct

Introduktion

Med if () kan man udføre forskellig kode alt efter resultatet af det der står mellem ( og ).

Det der står mellem ( og ) evalueres til enten true eller false.

if er en construct.

Syntax

if 1

Her evalueres $sulten == "ja" til true og kode mellem { og } udføres.
I can has cheezburger?
Resultatet ovenfor er skabt af følgende kode

Havde $sulten indeholdt alt andet end ja så ville kode blokken ikke blive udført.

if 2

Her tester vi indholdet af $alder 2 gange.
Personen er både over 10 år og under 30 år.
Resultatet ovenfor er skabt af følgende kode

I stedet for at skrive if () 2 gange kan vi bruge && (som betyder og) til at få samme resultat.
Personen er både over 10 år og under 30 år.
Resultatet ovenfor er skabt af følgende kode

Med && kan vi teste om $alder både er over 10 og under 30 i samme if ().
echo koden udføres kun hvis $alder er over 10 OG under 30.

if 3

Her tester vi variabler og bruger både && (som betyder og) og || (som betyder eller).
Enten hedder du iben eller også kommer du fra odense.
Resultatet ovenfor er skabt af følgende kode

if else 1

Her bruger vi en boolsk værdi som kun kan være true eller false.
Når vi tester en boolsk værdi behøver vi kun skrive variablen.

Hvis $klar er true udføres den første kode blok.
Hvis $klar er false udføres den anden kode blok.
Jeg er ikke klar
Resultatet ovenfor er skabt af følgende kode

if else 2

Vi kan teste for det modsatte ved at sætte et udråbstegn (!) foran variablen i if ().
Jeg har det ikke koldt
Resultatet ovenfor er skabt af følgende kode

if elseif else

Jeg har det koldt
Jeg har det koldt
Jeg har det fint
Jeg har det varmt
Jeg har det varmt
Resultatet ovenfor er skabt af følgende kode

Man kan have lige så mange elseif () som man vil.

Ternary operator

Der findes en kort måde at skrive en betingelse på som kaldes ternary operator (eller ?:).

ternary operator returner altid en værdi og man kan kun have én statement i hver sand/falsk blok.

Her ses syntaksen.

Det kan bruges som her hvor man enten skal udskrive ordet "sekund" eller "sekunder".
Nu er der gået 1 sekund
Nu er der gået 20 sekunder
Resultatet ovenfor er skabt af følgende kode

Her er endnu et eksempel.
Jeg er millionær
Øv jeg er ikke millionær
Resultatet ovenfor er skabt af følgende kode

Og endnu et.
Jeg har 1 æble
Jeg har 3 æbler
Resultatet ovenfor er skabt af følgende kode

Jeg opstiller ofte koden som her på flere linjer.
Læg mærke til der ikke skal være noget ; tegn til sidst på linjen med ?.
CCBot/2.0 (http://commoncrawl.org/faq/)
Resultatet ovenfor er skabt af følgende kode

I langt de fleste tilfælde vil jeg dog anbefale bruge if () med { og } da man har bedre kontrol og overblik og andre der skal læse koden vil have lettere ved at forstå den.

Sandt eller falsk 1

Hvis udtrykket mellem if ( og ) er sandt (true) så udføres koden mellem {}.
Jeg spiser
Resultatet ovenfor er skabt af følgende kode

Sandt eller falsk 2

Ved at sætte ! foran en variabel i en if () sætning kan vi teste for det modsatte.
Jeg drikker ikke
Resultatet ovenfor er skabt af følgende kode

Sandt eller falsk 3

katten sover
hunden sover
hesten er vågen
koen er vågen
Resultatet ovenfor er skabt af følgende kode

Sandt eller falsk 4

Lav os sige vi har hentet fil størrelsen på en fil og ønsker at vise størrelsen.
Fil størrelse : 3416 Bytes
Resultatet ovenfor er skabt af følgende kode

Det virker fint nok så længe fil størrelsen ikke er 0.
Kunne ikke vise fil størrelse
Resultatet ovenfor er skabt af følgende kode

Det er fordi tallet 0 evalueres til FALSE med mindre vi tester præcist efter FALSE.

For at få vist fil størrelse selv når filen er tom (0 bytes) så kan vi bruge !== til at teste om værdien ikke er FALSE.
Fil størrelse : 0 Bytes
Resultatet ovenfor er skabt af følgende kode

Skriv din kommentar

Spørg mig om hvad som helst
Du kan også skrive direkte til mig på
Stem
Søg
Language

Select English to navigate the website in English. Things like the navigation menu and contact form will be in English, but the main content on each page will not be translated.