Skip to main content

If en condities

In deze les leer je met condities om gaan.

Als je code conditioneel wilt uitvoeren kun je een if statement gebruiken. Stel je wilt alleen iets printen als de waarde van $i 0 is.

Dan doe je:

<?php
if($i == 0) {
	echo "Iets";
}

je ziet dat de vergelijking tussen (  ) staat. En je ziet dat er niet = maar == staat. In PHP gebruik je = voor het toekennen van een warde aan een variabele, zoals $a=1. Bij een vergleijking gebruik je altijd ==.

De vergleijking resulteert in waar of niet waar; true of false.

Naast == kun je ook andere vergelijkingen maken. De belangrijkste zijn.

== is gelijk aan
> groter dan
< kleiner dan
>= groter of gelijk
<= kleiner of gelijk
<> ongelijk

Je kunt ook een conditie/vergelijking maken en meerdere zaken testen. Je wilt bijvoorbeeld code uitvoeren als twee variabelen beide 0 zijn. Dan doe je:

if ( $a==0 and $b==0) { ....}

Je kunt ook een or gebruiken en dat betekent dan dat één van de vergelijking waar moet zijn, bijvoorbeeld:

if ( $a==0 or $b==0) { ....}

Een vergelijking levert altijd true of false op. Bij true wordt het code blok achter de if uitgevoerd en bij false wordt het code blok overgeslagen.

Soms worden true en false ook als 1 of 0 weergegeven.

Dus ($a==$a) en true en 1 zijn in een vergelijking allemaal hetzelfde.

Vraag 1: stel $a=0 en $b=1 en je hebt een if($a*$b), levert dit true of false op en wordt het code blok van de if dan wel of niet uigevoerd?

Een if kan ook een else hebben:

<?php
if ( $a==0 ) {
	echo "true";
} else {
	echo "false";
}

Het code blok in de else wordt uitgevoerd als de vergelijking in de if, false is.

Ten slotte heb je ook nog een elseif.

<?php
$t = date("H");

if ($t < "10") {
    echo "Have a good morning!";
} elseif ($t < "20") {
    echo "Have a good day!";
} else {
    echo "Have a good night!";
}

In deze code wordt $t het uur (van de dag). Als de eerste vergelijking true is dan wordt de eerste echo uitgevoerd en is alles klaar. Als de eerste vergelijking false is dna wordt de tweede vergelijking uitevoerd, als deze ook false is dan zou er een tweede elseif kunnen staan daar waar nu de else staat. In dit geval staat er gewoon een else.

De bovenstaande code kan ook anders worden geschreven. Zie de code hieronder. Meestal is de code met de eslsif beter leesbaar.

<?php
$t = date("H");

if ($t < "10") {
    echo "Have a good morning!";
} else {
	if ($t < "20") {
		echo "Have a good day!";
	} else {
		echo "Have a good night!";
    }
}

Opgave

Bepaal van de volgende condities of ze true of false zijn. Dus als het een if statement zou zijn zou dan het code blok na de if worden uitgevoerd (true) of niet (false)?

$a=0 en $b=1

Opgavee Vergelijking true of false?
1 ($a==1)  
2 ($b==1)  
3 ($a==1 or $b==1)  
3 ($a==0 and $b<>1)  
4 ($a<>1 and $b<>0)  
5 ($a+$b==1 and $a*$b==0)  
6 ($a+$b==1 or $a*$b==0)  
7 ($a)  
8 ($b)  
9 ($a and $b)  
10 ($a or $b)  
11 ($a or $b*$a)  
12 ( ($a+2)*10>5 and $a )  

--