Vergelijkingen
Vergelijkingen, bijvoorbeeld met if-then-else gaan min of meer hetzelfde als in PHP.
Boolean
Een boolean is een data type in vrijwel alle programmeertalen en kent twee waarden true of false. Soms staan deze waarden gelijk aan 1 en 0; 1 is dan true en 0 is dan false. In PHP geldt dat alle waarden behalve een 0 of een lege waarde zijn true. Dit kan belangrijk zijn omdat een if-statement altijd met een boolean werkt. Dat betent dus bijvoorbeeld dat:
<?php
if ( 1 ) { ...... // dit is true en de if wordt uitgevoerd
if ( "" ) { ..... // dit is false en de if wordt niet uitgevoerd
if ( 3-3 ) { .... // dit is false en de if wordt niet uitgevoerd
if ( "Hallo" ) .. // dit is true en de if wordt dus uitvevoerd
Later gan we nog meer oefenen met if statements.
Vergelijkingen
Een vergelijking resulteert altijd in een boolean (true of flase). PHP kent de volgende belangijkste vergelijkingen.
Vergelijkings Operator | Betekenis | Voorbeeld |
== | is gelijk aan | $teller==3 of $naam=="John" |
<> of != | is ongelijk aan | $teller!=3 of $naam<>"John" |
< | is kleiner dan | $nummer<10 |
> | is groter dan | $nummer>10 |
<= | is kleiner dan of gelijk aan | $nummer<=10 |
>= | is groter dan of gelijk aan | $nummer>=10 |
We kunnen een variabele ook type casten naar een boolen met (bool) of met (boolean). Met vardump kunnen we dan het type variabele en de waarde afdrukken.
<?php
var_dump(1==1);
$naam="";
var_dump( (bool)$naam );
$naam="Maria";
var_dump( (bool)$naam );
?>
Opgave
- Bepaal van de volgende waarden of ze true of false zijn en laat zien welke code je daarvoor hebt gebruikt. Probeer van te voren te voorstpellen wat de uitkomst (true of false) is.
"ROC"
"true"
"false"
0
1
00
"0"
"1"
3+3
12-12
201*32
201*0
(12<12)
("a" < "b")
("aa" < "b" )
( 1200 >= 1201 )
( 1200 != 1201 )
( "CC" != "" )
Operators
If-statement
Het if statement in PHP is hetzelfde als in JavaScript. Ook de && en || zijn ook hetzelfde maar mogen ook als and en or worden geschreven. Dus:
if ( $leeftijd > 21 && $leeftijd < 30 ) { ...
// dit is hetzelfde als
if ( $leeftijd > 21 and $leeftijd < 30 ) { ...
if ( $naam == "" || $naam == "leeg" ) { ...
// dit is hetzelfde als
if ( $naam == "" or $naam == "leeg" ) { ...
Het if statement is verder ook hetzelfde als in JavaScript:
if ( $command == "execute" ) {
// ......hier komt code voor als de gebruiker execute heeft gekozen.
} elseif ( $command == "cancel" ) {
// ......hier komt code voor als de gebruiker cancel heeft gekozen.
} else {
// ......hier komt code voor als de gebruiker geen execute of cancel heeft gekozen.
}
User input
Met JavaScript konden we met het prompt commando de gebruiker om input vragen. Dat kan met PHP niet en dat komt omd at PHP niet in de browser draait. PHP draait op de server en als je een venster zou openen dan zou dat venster op de server openen en daar heb je natuutlijk niets aan.
PHP kan alleen met de gebruiker communiceren door html naar de browser te sturen en de broser kan alleen met de server communiceren door met firmulieren (forms) iets te posten.
Dat werkt als volgt:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
// Hier begint het form
<form action="test.php" method="get">
Name: <input type="text" name="userName"><br>
Geboortejaar: <input type="text" name="geboorteJaar"><br>
Jarig geweest (ja/nee)? <input type="text" name="jarigGeweest"><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
Dat is een heel stuk code maar waar het om gaat is het formulier op regel 12 tot en met 17. De rest is een standaard HTML template en kun je vaak met een editor in één keer intoetsen bijvoorbeeld met !-tab
De user input wordt door het form gevraagd en wordt naar de php file test.php gestuurd. Maak en een test.php en zet daar het volgende in:
<?php
$thisYear=date("Y");
echo "Naam: ".$_GET['userName'];
echo "<br>";
echo "Geboortejaar: ".$_GET['geboorteJaar'];
echo "<br>";
echo "Al jarig geweest?: ".$_GET['jarigGeweest'];
echo "<br>";
echo "Huidig jaar: ".$thisYear;
echo "<br>";
$leeftijd = $thisYear - $_GET['geboorteJaar'];
if ( strtoupper($_GET['jarigGeweest']) == "JA" ) {
$leeftijd++;
}
echo "Jouw leeftijd is: ".$leeftijd;
?>