Verkorte if/else notatie

  1. Een if/else statement korter opschrijven
  2. Reacties op deze tutorial

Een if/else statement korter opschrijven

Naast de uitgebreide if/else notatie die je in de meeste gevallen zult gebruiken, bestaat er ook een verkorte notatie voor een if/else statement. Bij deze notatie wordt gebruik gemaakt van de zogenaamde 'ternary operator' (?). De notatie die je dan gebruikt is als volgt:
Code
1
2
3
<?php
$variabele 
= [voorwaarde] ? [true] : [false];
?>

  • [voorwaarde] -> De voorwaarde waaraan voldaan moet worden.
  • [true] -> Het statement dat uitgevoerd wordt als aan de voorwaarde voldaan wordt.
  • [false] -> Het statement dat uitgevoerd wordt in de overige gevallen.

Bovenstaande is dus een andere notatie voor:
Code
1
2
3
<?php
if([voorwaarde]) { $variabele = [true]; } else { $variabele = [false]; }
?>


Voorbeeld 1: Een vergelijking met fruit
Code
1
2
3
4
5
6
<?php
$input 
'appel';

$fruit = ($input == 'peer') ? 'peer' 'banaan';
echo 
$fruit// 'banaan'
?>


Voorbeeld 2: Een naam ingevuld?
Code
1
2
3
4
<?php
$naam 
= isset($_POST['naam']) ? $_POST['naam'] : 'Geen naam';
echo 
$naam// Als $_POST['naam'] bestaat zal die waarde weergegeven worden. Zo niet dan wordt er 'Geen naam' weergegeven.
?>


In plaats van eerst een variabele aanmaken en dan echoën, kun je dat ook direct doen.

Voorbeeld 3: Direct echoën van variabelen
Code
1
2
3
4
5
<?php
$input 
'appel';

echo (
$input == 'peer') ? 'peer' 'banaan'// 'banaan'
?>


Ook is het mogelijk om php functies los te laten binnen deze notatie.

Voorbeeld 4: Een php functie gebruiken
Code
1
2
3
4
5
6
<?php
$string 
'Een te hashen string';
$methode 'md5';

$hash = ($methode == 'md5') ? md5($string) : sha1($string);
?>


In deze korte if/else notatie is er geen mogelijkheid tot elseif statements. Mocht je dus een een combinatie hebben waar ook een elseif statement in voorkomt, dan zul je altijd de uitgebreide notatie moeten gebruiken.

Op dit punt zul je je misschien afvragen waarom je deze notatie überhaupt zou gebruiken als het eigenlijk alleen maar beperkingen oplevert. Wat bijvoorbeeld een goede reden zou kunnen zijn, is het overzichtelijk houden van je script. Als je bijvoorbeeld een relatief lange lijst met if/else statements onder elkaar hebt, kan het je heel wat regels code schelen om deze notatie te gebruiken.

Waar ik deze notatie veel gebruik is bij het value attribuut van input velden: ik controleer of een waarde bestaat en zo ja, dan geef ik hem als value mee. En dit alles kan ik op 1 regel doen, waardoor mijn html code intact en overzichtelijk blijft!

Volgende