Sähköisten asiointipalveluiden toteuttaminen

Sorakuilu

Ehtolause, if

vuokaavio

Yksinkertaisin ehtolause on muotoa

if (ehtolauseke) lause;

jossa lause voi olla myös lohko { ... }.

if (ehtolauseke) { lause1; lause2; lause3; }

Ehtolauseeseen voidaan lisätä myös vaihtoehtoinen osa, eli

if (ehtolauseke) lause1; else lause2;

Vaihtoehtoisia osia voi lisätä useita elseif-lauseella, eli

if (ehto1) lause1; elseif (ehto2) lause2; .. elseif (ehtoN) lauseN; else lauseV;

Jossa suoritetaan sitä ensimmäistä true-arvoista ehtoa vastaava lause. Jos mikään ehto ei ole true, suoritetaan lauseV.

Esimerkiksi koodi

<?php $selain = $_SERVER['HTTP_USER_AGENT']; if (strstr($selain, "Win")) echo "Käytät siis Windowsia."; elseif (strstr($selain, "Linux")) echo "Hienoa, olet Linux-käyttäjä!"; else echo "En tunnista käyttöjärjestelmääsi!"; ?>

tulostaa sivulle

Käytät siis Windowsia.

Esimerkkejä

if(ehto) { teejotain(); teejotain(); if(tokaehto) { teevieläjotain(); vähän lisää(); } } elseif(uustokaehto) { teejotain(); teejotain(); } else { teejotain(); teejotain(); } --------------------------------------- if(ehto) teejotain(); --------------------------------------- if($luku || $luku==0 || $luku=="0") { }

Ehtoja lomakkeen lukemiseen

if($_POST)... onko lomake lähetetty if(!$_POST) ... jos lomaketta ei ole lähetetty if(isset($_POST['nimi']))... jos lomakkeen kentässä 'nimi' on arvo if(!isset($_POST['nimi']) || $_POST['nimi']=="") ... jos lomakkeen kentässä ei ole arvoa tai kenttä on tyhjä if(isset($_POST['nimi'],$_POST['koko'])) ... jos molemmissa lomakkeen kentissä on arvo

Muita esimerkkejä

if($arvo) ...

testaa, että muuttujalla $arvo on jokin arvo

if(!$arvo) ...

testaa, että muuttujalla $arvo ei ole arvoa tai se on epätosi

if($arvo == 0) if($arvo == NULL) if($arvo == "")

$arvo on joko 0, null tai "" ...

if($luku1 == $luku2)

... yhtäsuuruus

if($luku1 != $luku2)

... erisuuruus

if($luku1 > $luku2)

... 1 suurempi kuin 2

if($luku1 < $luku2

... 1 pienempi kuin 2

if($luku1 >= $luku2

... 1 suurempi tai yhtä suuri kuin 2

if($luku1 <= $luku2)

... 1 pienempi tai yhtä suuri kuin 2

if($arvo = = true) if($arvo)
if($arvo = = false) if(!$arvo)

Valintalause switch - case

Jos ehtolauseeseen tulee useita elseif -osia, voidaan toteuttaa näppärästi valintalauseella:

switch (lauseke) { case arvo1: lauseet1; break; case arvo2: lauseet2; break; ... continue: oletuslauseet; }

break katkaisee suorittamisen, siinä kohdassa ehdon toteutuessa lopetetaan vaihtoehtojen läpikäyminen.

continue toimii päinvastoin, suoritusta jatketaan vaikka ehto toteutuu

default toteutuu, kun mikään muu arvo ehto ei toteudu.

Esimerkiksi seuraavat lauseet tulostavat näytölle viikonpäivän.

<?php echo "Nyt on "; switch (date("w")) { case 1: case 2: echo "alkuviikko"; break; case 3: echo "keskiviikko"; break; case 4: echo "torstai"; break; case 5: echo "perjantai"; break; default: echo "viikonloppu"; } echo "!"; ?>