Structuren

Info 
Door: Mirax Moeilijkheidsgraad: 1/3
Views:28.888Reacties: 7(Bekijken)
  Log in om zelf te reageren
 Waardering:7.5/10 (4 stemmen)

PHP: een uitgebreide cursus» Wat is PHP? | De eerste stappen in PHP | Variabelen | Formulieren | Structuren | Structuren deel 2 | Veelgebruikte functies | Eigengemaakte functies




Structuren
Je kent nu een beetje de basis van PHP. Dan zullen we nu meer interessante en nuttiger dingen gaan doen, namelijk structuren. Met deze structuren kan je een bepaald stukje code in bepaalde gevallen uitvoeren, of 20 keer herhalen, of herhalen tot er 'iets' aan de hand is. Hieronder geven we de meestgebruikte, een overzicht van alle structuren vind je op php.net.

if
De code na de if wordt uitgevoerd als een bepaald statement waar is.

#Code
1
2
3
4
5
6
<?php
if( true )
{
 
// code wordt uitgevoerd
}
?>


De code tussen de accolades wordt uitgevoerd, omdat het statement tussen de haakjes true is. Een statement is een uitdrukking, die resulteert in een booleaanse waarde, true of false. Zo kun je gebruik maken van de vergelijkingen == (is gelijk aan), >, <, >=, <=, != (ongelijk aan). Ook kun je gebruik maken van AND, OR en ! (not).

Als je dus een stukje code wilt laten uitvoeren, als een statement niet waar is, gebruik je dus

#Code
1
2
3
4
5
6
<?php
if( !( 1 == 2 ) )
{
  
// code uitgevoerd
}
?>


if else
Wat nu als je de ene code wilt uitvoeren als iets waar is, en de andere als iets niet waar is? Dan kun je direct na de if een else plaatsen. Het voorbeeldje van de vorige pagina kun je zo aan de praat krijgen.

#Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
// controleren of het formulier is toegevoegd
if( isset( $_POST['submit'] ) )
{
 
echo $_POST['voornaam'];
}
// niet toegevoegd, dan formulier tonen
else
{
?>
<form action="index.php" method="post">
<input type="text" name="voornaam" /><br />
<input type="submit" name="submit" value="Dit is mijn naam!" /><br />
</form>
<?php
}
?>


De code hierboven is dan duidelijk, behalve het statement. In dit geval is het een functie (hierover leer je verderop meer). Het komt er op neer dat op de plek van isset true staat als $_POST['submit'] bestaat, dus wanneer het formulier is tegevoegd, en anders false. Zie je nu al het nut in van de if-else structuur?

elseif
Wat nu als je meer mogelijkheden hebt dan true/false. Even een voorbeeldje

#Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
if( !isset( $_POST['submit'] ) )
{
?>
<form action="index.php" method="post">
<input type="text" name="voornaam" /><br />
<input type="submit" name="submit" value="Dit is mijn naam!" /><br />
</form>
<?php
}
elseif( $_POST['voornaam'] == 'Kees' )
{
 
echo 'Ik ben het';
}
else
{
 
echo 'Het is ' . $_POST['voornaam'];
}
?>


switch
Maar wat nu als je nog veel meer mogelijkheden hebt? Dan zul je een heleboel elseif's hebben staan, met een heleboel zich herhalende code. Om deze schrijfwijze te verkorten, is er de switch-structuur, je zult merken dat deze zeer handig kan zijn. Even een voorbeeldje, wat ook met if-elseif-else kan, maar wat met een switch vele malen duidelijker is.

#Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
switch( $_POST['voornaam'] )
{
 
case 'Jan': case 'Klaas':
  
$sBand = 'een broer';
  
break;
 
case 'Anton':
  
$sBand = 'mijn vader';
  
break;
 
case 'Clara': case 'Johanna':
  
$sBand = 'een zus';
  
break;
 
case 'Anne':
  
$sBand = 'mijn moeder';
  
break;
 
default:
  
$sBand = 'geen familie';
  
break;
}
echo $_POST['voornaam'] . ' is ' . $sBand;
?>


Wat je direct opvalt is dat deze code een stuk overzichtelijker is. De variabele die tussen de haakjes achter de switch staat, is de variabele die we gaan analyseren. Er zijn verschillende cases (gevallen), dus mogelijke waarden van $_POST['voornaam']. Wanneer de case wordt gevonden waaraan de variabele gelijk is, wordt de code daaronder uitgevoerd, tot aan de break. Zo is het mogelijk om bij twee verschillende waardes toch hetzelfde te doen, dit wordt wel fall-through genoemd. (Vergelijk dit met de OR uit het
voorbeeld onder elseif). Het is ook mogelijk om alle andere waarden op te vangen, dit doe je met default (in plaats van een case).

Dit waren een aantal belangrijke structuren, maar er zijn er meer, zoals stukken code die zichzelf vele malen uitvoeren. Dat dat handig kan zijn, zie je in de volgende tutorial over structuren.

«Formulieren Structuren deel 2 »

7 reacties
joannis11 Geplaatst op 06-02-2010 om 23:00
 

Regular
kijk maar hieronder, waar eerst kees stond, staat nu een 'and' bij, deze zorgt dat er nog een voorwaarde bijkomt, en ik heb achternaam nu er ook bijgevoegt, ofwel je moet je achternaam ook hebben ingevuld

<?php
if( !isset( $_POST['submit'] ) )
{
?>
<form action="index.php" method="post">
Voornaam: <input type="text" name="voornaam" /><br />
Achternaam: <input type="text" name="achternaam" /><br />
<input type="submit" name="submit" value="Dit is mijn naam!" /><br />
</form>
<?php
}
elseif( $_POST['voornaam'] == 'Kees' and $_POST['achternaam'] == 'Jansen')
{
echo 'Ik ben het';
}
else
{
echo 'Het is ' . $_POST['voornaam'];
}
?>

zou moeten werken :)
hierbij add ik dus gewoon een nieuwe voorwaarde dankzij de 'and' funcie

EDIT: ofwel je naam moet dus Kees Jansen zijn (voorzover je hebt ingevuld)
juliusjk Geplaatst op 14-05-2009 om 17:54
 

Regular
naar Vkaz: ja

een vraagje:
kun je ook meerdere voorwaarden tussen if( ) zetten?
en zo ja, hoe?
Vkaz Geplaatst op 30-01-2009 om 18:12
 

Regular
moet het bestand al op de server van de host staan voor het werkt??
Aishla Geplaatst op 07-06-2008 om 09:16
 

Regular
Hier kan je echt hele leuke dingen mee zeg =D
Ookal begrijp ik niet waarom dat ene een fall-through genoemd wordt. XD
Mirax Geplaatst op 31-05-2008 om 15:20
 

Moderator
Je hebt gelijk, bedankt!

Pagina 1 2 

Om te reageren moet je ingelogd zijn.
Nog niet geregistreerd? Doe dat dan nu!


Terug naar gewone pagina

Websitemaken wordt gehost door Nucleus.be, uw Hosting Solution Builder