Tutorials
Beginnen met PHP
Beginners tutorial voor een goede PHP basis
Pagina 1
Inleiding
Op het internet zijn reeds een aantal goede tutorials te vinden voor mensen die willen beginnen met PHP. Toch is er hier op PHPhulp geen goede tutorial over te vinden, vandaar dat ik daar maar eens verandering in wil gaan brengen. Het is tenslotte een PHP gerelateerde website, en er worden veel beginners op weg geholpen.
Bij deze tutorial ga ik er wel vanuit dat je weet hoe je een php-pagina kan maken, en ook dat je een webserver hebt, of hebt geïnstalleerd (bijvoorbeeld via deze tutorial http://phphulp.nl/php/tutorials/8/101/ )
Er zijn ook complete pakketten beschikbaar die wat gemakkelijker zijn om te installeren:
- XAMPP (Download hier: http://www.apachefriends.org/en/xampp.html
- WAMP (Download hier: http://www.wampserver.com/en/download.php
Goed, jullie hebben dus de beschikking over een webserver, of een testserver. Het is tijd om met de tutorial te gaan beginnen.
Ik heb bij het schrijven van deze tutorial ook gekeken naar de opbouw van andere tutorials. Soms kan deze tutorial daarop lijken, maar het is wel helemaal zelf geschreven
Voor het maken van PHP bestanden zijn verschillende editors beschikbaar. Het is het slimst om (zeker als beginner) een editor te kiezen die gewoon code highlighting heeft. (Dit houd in dat verschillende stukken code op een bepaalde manier in worden gekleurd, waardoor je verschil kan zien tussen bijvoorbeeld functies of stukken tekst (tussen quotes) die je in je code hebt staan. Je kan zo veel sneller zien wat je doet.
Een paar gratis (freeware) voorbeelden van dit soort editors zijn:
Notepad ++
Crimson Editor
Bij deze tutorial ga ik er wel vanuit dat je weet hoe je een php-pagina kan maken, en ook dat je een webserver hebt, of hebt geïnstalleerd (bijvoorbeeld via deze tutorial http://phphulp.nl/php/tutorials/8/101/ )
Er zijn ook complete pakketten beschikbaar die wat gemakkelijker zijn om te installeren:
- XAMPP (Download hier: http://www.apachefriends.org/en/xampp.html
- WAMP (Download hier: http://www.wampserver.com/en/download.php
Goed, jullie hebben dus de beschikking over een webserver, of een testserver. Het is tijd om met de tutorial te gaan beginnen.
Ik heb bij het schrijven van deze tutorial ook gekeken naar de opbouw van andere tutorials. Soms kan deze tutorial daarop lijken, maar het is wel helemaal zelf geschreven
Voor het maken van PHP bestanden zijn verschillende editors beschikbaar. Het is het slimst om (zeker als beginner) een editor te kiezen die gewoon code highlighting heeft. (Dit houd in dat verschillende stukken code op een bepaalde manier in worden gekleurd, waardoor je verschil kan zien tussen bijvoorbeeld functies of stukken tekst (tussen quotes) die je in je code hebt staan. Je kan zo veel sneller zien wat je doet.
Een paar gratis (freeware) voorbeelden van dit soort editors zijn:
Notepad ++
Crimson Editor
Pagina 2
Variabelen
Zoals het in elke programmeertaal het geval is, wordt er in PHP ook veel met variabelen gewerkt. Variabelen zijn zogeheten instanties waar je een waarde aan geeft. Deze waarde kan je later gebruiken door die later aan te roepen. In PHP worden variabelen voorgegaan door een $ (dollar teken).
Net als andere programmeertalen heb je ook in PHP verschillende typen variabelen. Alleen maakt het voor PHP niet zoveel uit, wat voor type je gebruikt in bijvoorbeeld een berekening. Behalve de in onderstaande code gebruikte typen (de integer en de string, uitleg staat erbij) zijn er meer typen, maar aan deze andere typen wordt een ander deel van de tutorial besteed. Ook zie je hier een paar rekenkundige tekens in de code staan. Deze zal ik ook later terug laten komen in deze tutorial.
Zoals je ziet doet PHP er niet moeilijk over of een getal tussen quotes staat of niet. In principe is het een string (stukje tekst) maar als je ermee gaat rekenen probeert PHP het om te zetten naar een integer.
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Je eerste PHP variabelen</title>
</head>
<body>
<?php
//stel een variabele in
$variabele = 'Ik ben een variabele';
//laat de waarde zien (met dubbele quotes, je kan dan de variabele gewoon meetypen in de tekst, hij wordt wel geparsed
echo "De waarde van de variabele is: $variabele";
//dezelfde zin met enkele qoutes. Nu krijg je niet de inhoud van $variabele te zien, maar gewoon de tekst $variabele
echo 'De waarde van de variabele is: $variabele';
/*
Nu de eigenlijk goede manier, de variabele "buiten quotes" halen, zoals dat zo mooi heet.
Voordat je de waarde wil laten sluit je de regel af met dezelfde quote als waar je mee starte.
Na die quote komt eerst een punt en dan de naam van de variabele.
Wil je daarna verder gaan met meer tekst, dan krijg je na de naam van de variabele weer een punt,
en dan weer de quotes om de tekst zoals je gewent bent.
*/
echo 'De waarde van de variabele is:'.$variabele.'. En daarna gaat de tekst weer verder';
?>
</body>
</html>
Net als andere programmeertalen heb je ook in PHP verschillende typen variabelen. Alleen maakt het voor PHP niet zoveel uit, wat voor type je gebruikt in bijvoorbeeld een berekening. Behalve de in onderstaande code gebruikte typen (de integer en de string, uitleg staat erbij) zijn er meer typen, maar aan deze andere typen wordt een ander deel van de tutorial besteed. Ook zie je hier een paar rekenkundige tekens in de code staan. Deze zal ik ook later terug laten komen in deze tutorial.
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Je eerste PHP variabelen</title>
</head>
<body>
<?php
//stel een variabele in -> onderstaande type is een STRING (betekend eigenlijk een stukje tekst)
$string = 'Ik ben een variabele';
//stel nog een variabele in -> onderstaande type is een INTEGER (betekend een getal)
$integer = 1;
// ook een string (zoals je ziet komt dit door de quotes om de waarde, dat het als een string geld)
$getal = '1';
// Ook nog een getal waarbij er cijfers achter de komma staan. (dit wordt ook wel een floating Point integer genoemd, kortweg Float) Dit doen we met een . in PHP.
$kommagescheiden = 2.5;
//Nu gaan we rekenen, eens zien wat PHP doet
// Onderstaande geeft als antwoord een 1 terug. Dit komt omdat van $string geen integer te maken is. Dus wordt die automatisch als 0 gerekend
echo $string+$integer;
// Onderstaande geeft als antwoord een 2 terug. Dit komt omdat van $getal wel een integer te maken is. Namelijk een 1
echo $getal+$integer;
// Het spreekt dan eigenlijk wel voor zich dat je met $integer gewoon kan rekenen.
echo $integer*3;
// Natuurlijk kan je ook met getallen achter de komma rekenen
echo $kommagescheiden*5;
?>
</body>
</html>
Zoals je ziet doet PHP er niet moeilijk over of een getal tussen quotes staat of niet. In principe is het een string (stukje tekst) maar als je ermee gaat rekenen probeert PHP het om te zetten naar een integer.
Pagina 3
PHP openen en sluiten
PHP code gebruik je bij hoofdzaak voor het maken van dynamische content op je website. Een website bestaat uit HTML, en dat is ook wat PHP doet -> Hij genereert de HTML (of de tekst in de pagina) die door je browser weer kan worden gegeven.
In principe kan je zeggen dat je PHP en HTML dus “door elkaar“ zal gebruiken, maar het is het eenvoudigst om toch een scheiding te houden tussen PHP en HTML.
Zoals je zult zien in de tutorial begin ik elk php bestand met de volgende regels:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
Deze regels zijn ervoor dat PHP alle fouten keurig laat zien. Waarschuwingen ook. Dit helpt je om foutloos te programmeren. Als je het goed doet krijg je geen meldingen op je pagina. (dit kan soms betekenen dat je wat aan moet passen om ook de waarschuwingen weg te krijgen)
Het openen van PHP in een pagina
Wanneer je in een pagina PHP wil gebruiken, dien je de openingstag <?php en de sluitingstag ?> van PHP te gebruiken. In theorie kan je ook de shorttags <? En ?> gebruiken, maar die worden niet overal geaccepteerd. Hiervoor is het aan te raden om deze niet te gebruiken!
Omdat je na je sluitingstag nog vaak HTML hebt staan (de body en HTML-tag van de HTML moeten worden afgesloten aan het einde van je pagina) is het handig om wanneer je ergens een stukje PHP neer gaat zetten, aan het begin van de regel (dit hoeft niet persé, maar is wel het meest duidelijk) de starttag te plaatsen, 2 enters te geven en op die regel de sluitingstag te plaatsen.
Code die je wil gaan typen kan je dan daartussenin plaatsen. Zo voorkom je waarschuwingen of foutmeldingen die ontstaan door het niet sluiten van je PHP code. Dit komt er dan zo uit te zien (De HTML die ik gebruik in de tutorial is zo opgebouwd dat het volgens de W3C standaard goed is):
In de bovenstaande code wordt nog niets gedaan tussen de PHP-tags. Als je de pagina in je browser zou bekijken via je server, dan zie je niets anders dan de HTML die in de pagina staat. Je krijgt dus een witte pagina te zien.
In principe kan je zeggen dat je PHP en HTML dus “door elkaar“ zal gebruiken, maar het is het eenvoudigst om toch een scheiding te houden tussen PHP en HTML.
Zoals je zult zien in de tutorial begin ik elk php bestand met de volgende regels:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
Deze regels zijn ervoor dat PHP alle fouten keurig laat zien. Waarschuwingen ook. Dit helpt je om foutloos te programmeren. Als je het goed doet krijg je geen meldingen op je pagina. (dit kan soms betekenen dat je wat aan moet passen om ook de waarschuwingen weg te krijgen)
Het openen van PHP in een pagina
Wanneer je in een pagina PHP wil gebruiken, dien je de openingstag <?php en de sluitingstag ?> van PHP te gebruiken. In theorie kan je ook de shorttags <? En ?> gebruiken, maar die worden niet overal geaccepteerd. Hiervoor is het aan te raden om deze niet te gebruiken!
Omdat je na je sluitingstag nog vaak HTML hebt staan (de body en HTML-tag van de HTML moeten worden afgesloten aan het einde van je pagina) is het handig om wanneer je ergens een stukje PHP neer gaat zetten, aan het begin van de regel (dit hoeft niet persé, maar is wel het meest duidelijk) de starttag te plaatsen, 2 enters te geven en op die regel de sluitingstag te plaatsen.
Code die je wil gaan typen kan je dan daartussenin plaatsen. Zo voorkom je waarschuwingen of foutmeldingen die ontstaan door het niet sluiten van je PHP code. Dit komt er dan zo uit te zien (De HTML die ik gebruik in de tutorial is zo opgebouwd dat het volgens de W3C standaard goed is):
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Het openen en sluiten van PHP</title>
</head>
<body>
<?php
?>
</body>
</html>
In de bovenstaande code wordt nog niets gedaan tussen de PHP-tags. Als je de pagina in je browser zou bekijken via je server, dan zie je niets anders dan de HTML die in de pagina staat. Je krijgt dus een witte pagina te zien.
Pagina 4
Getallen weergave
Natuurlijk heb je ook wel eens heel grote getallen, of wil je liever dat een getal niet weer wordt gegeven met een punt als scheidingsteken maar heb je daar liever een komma staan. Bij grote getallen is het de gewoonte om een . te gebruiken als scheidingsteken voor duizendtallen.
Om een getal op de manier weer te geven op het scherm zoals jij het wil, kan je number_format( ) gebruiken. Onderstaand voorbeeld geeft duidelijk aan hoe het werkt.
Om een getal op de manier weer te geven op het scherm zoals jij het wil, kan je number_format( ) gebruiken. Onderstaand voorbeeld geeft duidelijk aan hoe het werkt.
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Je eerste PHP variabelen</title>
</head>
<body>
<?php
$aantal_decimalen = 2; // standaard staan er 2 getallen achter de comma
$decimaalteken = ','; // voor getallen achter de 0 gebruiken we in dit geval een komma
$tekenduizendtallen = '.'; // voor duizendtallen gebruiken we een .
$getal = 82348214.2341; // een mooi groot getal met een aantal cijfers achter de . die straks achter de komma komen te staan.
echo number_format($getal, $aantal_decimalen, $decimaalteken, $tekenduizendtallen);
//onderstaande regel doet hetzelfde, maar is niet met variabelen gedaan
echo number_format($getal, 2, ',', '.');
/* AFRONDEN */
// voor afronden gebruik je de round functie van PHP
echo round($getal, $aantal_decimalen);
// en onderstaande regel rond af op 3 decimalen
echo round($getal,3);
?>
</body>
</html>
Pagina 5
Je eerste PHP code
Zoals ik al aan had gegeven, geeft PHP gewoon tekst of HTML code terug. Hiervoor bestaat de echo-functie in PHP. Door een regel te beginnen met echo en daarna tussen quotes de tekst te zetten zal deze tekst aan de browser worden teruggegeven.
In onderstaand voorbeeld heb ik de tekst na echo tussen enkele quotes geplaatst. Dit heeft als reden dat je door zo te werken variabelen wel buiten quotes moet halen, omdat deze wanneer ze tussen enkele quotes staan niet geparsed worden. Dit wordt later in deze tutorial nog toegelicht.
Zie ook dat na de afsluitende quote aan het einde van de regel met de echo een ; (puntkomma) staat. Deze dien je aan het einde van de regel met PHP code te plaatsen. Ook hierop zijn uitzonderingen, maar die ligt ik verderop weer toe.
De uitvoer in de browser zal een pagina zijn een witte pagina met alleen de tekst: Hallo wereld.
Nu gaan we dezelfde tekst nog een keer laten zien, maar dan gecentreerd. Nu kan je buiten de PHP-tags aan gaan geven dat het gecentreerd moet zijn, maar wat nu als slechts een klein deel gecentreerd moet worden?
Dan schrijf je eenvoudig de HTML code mee bij de tekst in de echo. Hier komt gelijk één van de redenen uit naar voren waarom enkele quotes te gebruiken. HTML moet officieel namelijk worden gedaan met dubbele quotes om de ‘subtags’. Als je dubbele quotes gebruikt voor je echo moet je elke dubbele quote voor de html escapen. Ik geef even een paar voorbeelden in 1 pagina. De uitleg staat daarbij met commentaar.
De uitvoer in de browser zal een pagina zijn een witte pagina met 2 keer de tekst: Hallo wereld. De eerste keer zal de tekst gecentreerd zijn, en de 2e keer zal de tekst rechts staan. Als je in de broncode kijkt van die pagina dan zie je ook keurig de HTML staan die je hebt ingevoegd (de divjes en de style die je daaraan mee had gegeven)
In onderstaand voorbeeld heb ik de tekst na echo tussen enkele quotes geplaatst. Dit heeft als reden dat je door zo te werken variabelen wel buiten quotes moet halen, omdat deze wanneer ze tussen enkele quotes staan niet geparsed worden. Dit wordt later in deze tutorial nog toegelicht.
Zie ook dat na de afsluitende quote aan het einde van de regel met de echo een ; (puntkomma) staat. Deze dien je aan het einde van de regel met PHP code te plaatsen. Ook hierop zijn uitzonderingen, maar die ligt ik verderop weer toe.
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Je eerste stukje PHP</title>
</head>
<body>
<?php
echo 'Hallo wereld.';
?>
</body>
</html>
De uitvoer in de browser zal een pagina zijn een witte pagina met alleen de tekst: Hallo wereld.
Nu gaan we dezelfde tekst nog een keer laten zien, maar dan gecentreerd. Nu kan je buiten de PHP-tags aan gaan geven dat het gecentreerd moet zijn, maar wat nu als slechts een klein deel gecentreerd moet worden?
Dan schrijf je eenvoudig de HTML code mee bij de tekst in de echo. Hier komt gelijk één van de redenen uit naar voren waarom enkele quotes te gebruiken. HTML moet officieel namelijk worden gedaan met dubbele quotes om de ‘subtags’. Als je dubbele quotes gebruikt voor je echo moet je elke dubbele quote voor de html escapen. Ik geef even een paar voorbeelden in 1 pagina. De uitleg staat daarbij met commentaar.
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Je eerste stukje PHP</title>
</head>
<body>
<?php
//commentaar in je PHP code wordt vooraf gegaan door //
// wil je commentaar over meerdere regels verdelen dan kan dat zoals onderstaand
/* Deze
Regels
Met
Commentaar
Zijn verdeeld over meerdere regels*/
// met enkele quotes, zie dat ik de HTML nu gewoon mee kan typen.
echo '<div style="text-align:center;">Hallo wereld.</div>';
// zoals je kan zien moeten nu de dubele quotes worden ge-escaped door het \ teken
echo "<div style=\"text-align:right;\">Hallo wereld.</div>";
?>
</body>
</html>De uitvoer in de browser zal een pagina zijn een witte pagina met 2 keer de tekst: Hallo wereld. De eerste keer zal de tekst gecentreerd zijn, en de 2e keer zal de tekst rechts staan. Als je in de broncode kijkt van die pagina dan zie je ook keurig de HTML staan die je hebt ingevoegd (de divjes en de style die je daaraan mee had gegeven)
Pagina 6
Rekenkundige operatoren
Er zijn natuurlijk ook gewoon te gebruiken rekenkundige operatoren in PHP. Deze kan je gebruiken om te rekenen met de getallen die we hiervoor al hebben geplaatst in een variabele.
De volgende rekenkundige operatoren hebben we in PHP
De volgende rekenkundige operatoren hebben we in PHP
+ -> Telt getallen bij elkaar op.
- -> Trekt getallen van elkaar af.
* -> Vermenigvuldigd variabalen met elkaar
/ -> Deelt variabelen door elkaar
% -> Deelt variabelen door elkaar, en geeft de rest terug (bijv 10%3 = 1, omdat 3 keer 3 negen is, rest is dus 1)
++ -> Telt 1 bij het getal op, dit werkt anders dan de andere rekenkundige operatoren
-- -> Trekt 1 van het getal af, dit werkt anders dan de andere rekenkundige operatoren
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Rekenen met PHP</title>
</head>
<body>
<?php
$getal1 = 30;
$getal2 = 3;
$getal3 = 4;
$som = $getal1 + $getal2;// geeft 33
$min = $getal1 + $getal2;// geeft 27
$product = $getal1 * $getal2;// geeft 90
$delen = $getal1 / $getal2;// geeft 10
$restand = $getal1%$getal3; // geeft 2, omdat 7*4 = 28, en dan blijft er nog 2 over
// De ++ en -- werken iets anders, dat gaat zo (de -- werkt net zo als de ++):
$getal4 = 5;
$getal4++;// de waarde van $getal4 is nu 6, het is hetzelfde als $getal4 = $getal4 + 1;
$getal4--;// de waarde van $getal4 is nu 4, het is hetzelfde als $getal4 = $getal4 - 1;
// Dit kan ook weer anders
$getal4 += 2; // Dit is de verkorte notatie om er 2 bij op te tellen, ik vind het vaak overzichtelijker om het vol uit te schrijven.
?>
</body>
</html>
Pagina 7
Arrays
Naast de verschillende eerder genoemde variabelen hebben we ook nog de array. Een array is een verzameling van een aantal gegevens in 1 variabele. Dit klinkt nu nog heel abstract, maar ik zal het eens uitleggen aan de hand van een voorbeeld. Je hebt een simpele array, waarbij de keys gewoon getallen zijn, beginnende bij 0, of een array waarbij je zelf waarden aan de keys geeft. Pas dus wel op, omdat een array standaard bij 0 begint te tellen.
Wil je weten welke mogelijkheden er zijn met arrays, kijk dan ook op http://www.php.net/array
Wil je weten welke mogelijkheden er zijn met arrays, kijk dan ook op http://www.php.net/array
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>De Array</title>
</head>
<body>
<?php
// Manier 1 van een simpele array aanmaken
$array_1 = array(); // Eerst moet je nu zeggen dat de variabele een array is
$array_1[] = 'waarde1'; //$array[0] heeft nu de waarde 'waarde1'
$array_1[] = 'waarde2'; //$array[1] heeft nu de waarde 'waarde2'
$array_1[] = 'waarde3'; //$array[2] heeft nu de waarde 'waarde3'
$array_1[] = 'waarde4'; //$array[3] heeft nu de waarde 'waarde4'
// Manier 2 van een simpele array aanmaken, deze ziet er dan net zo uit als de 1e array
$array_2 = array('waarde1', 'waarde2', 'waarde3', 'waarde4');
// Weergeven van een waarde
echo $array_2[2];// laat de 3e waarde van de array zien, omdat de array bij 0 begint te tellen.
/* ZELF DE ARRAY KEYS AANMAKEN */
//manier 1
$array_3 = array(); // weer zeggen dat het een array betreft
$array_3['NL'] = 'Nederland';
$array_3['BE'] = 'België';
$array_3['DE'] = 'Duitsland';
$array_3['FR'] = 'Frankrijk';
//manier 2, vormt weer dezelfde array als de 1e manier
$array_4 = array('NL' => 'Nederland','BE' => 'België', 'DE' => 'Duitsland', 'FR' => 'Frankrijk');
//Weergeven gaat op dezelfde manier, de naam van de variabele, met tussen de [] (brackets) de key van de gezochte waarde
echo $array_4['NL'];// toont Nederland
?>
</body>
</html>
Pagina 8
If/ Else
Natuurlijk wil je ook ervoor kunnen zorgen dat iets alleen gebeurt wanneer er een bepaalde actie door iemand is gedaan, of bijvoorbeeld wanneer iemand is ingelogd. Ik ga er nu niet verder op in, hoe je de sessie aanmaakt, maar ik geef wel aan hoe je zo’n constructie kan maken.
Let op!! Voor het vergelijken gebruik je == of === om te zien of een variabele hetzelfde is als wat erachter staat. == controleert alleen op waarde, === kijkt ook of het variabele type overeenkomt.
!= of <> gebruik je om te kijken of een waarde niet hetzelfde is. Om te controleren of een variabele groter is (wil alleen bij integer en float) dan een waarde gebruik je >, en voor kleiner dan gebruik je <. Ten slotte heb je nog groter dan of gelijk aan en kleiner dan of gelijk aan (respectievelijk >= of <= )
De if/else constructie ziet er altijd hetzelfde uit qua opbouw, simpel gezegd ziet het er zo uit:
Zoals je ziet is na de voorwaarde elke keer een { en sluit je de actie die bij die voorwaarde hoort ook weer met een }. Let hierop, omdat je wanneer dit niet klopt een melding krijgt. (vaak een "unexpected END"). Het is aan te raden om voor een if / else clause jezelf aan te wennen deze meteen te openen met { en ook te sluiten met }. Doe je dit stelselmatig, dan voorkom je een boel gezoek naar de plek waar dan de afsluiting ontbreekt.
Let op!! Voor het vergelijken gebruik je == of === om te zien of een variabele hetzelfde is als wat erachter staat. == controleert alleen op waarde, === kijkt ook of het variabele type overeenkomt.
!= of <> gebruik je om te kijken of een waarde niet hetzelfde is. Om te controleren of een variabele groter is (wil alleen bij integer en float) dan een waarde gebruik je >, en voor kleiner dan gebruik je <. Ten slotte heb je nog groter dan of gelijk aan en kleiner dan of gelijk aan (respectievelijk >= of <= )
De if/else constructie ziet er altijd hetzelfde uit qua opbouw, simpel gezegd ziet het er zo uit:
if(voorwaarde){
-> actie als aan de voorwaarde is voldaan
}
else if(2e voorwaarde){
-> actie als niet aan eerste voorwaarde is voldaan, maar wel aan de 2e
}
else if(3e voorwaarde){
-> actie als niet aan de 1e twee voorwaarden wordt voldaan, maar wel aan deze (de 3e)
}
else{
-> actie als er aan elke voorgenoemde voorwaarde niet is voldaan.
}
Zoals je ziet is na de voorwaarde elke keer een { en sluit je de actie die bij die voorwaarde hoort ook weer met een }. Let hierop, omdat je wanneer dit niet klopt een melding krijgt. (vaak een "unexpected END"). Het is aan te raden om voor een if / else clause jezelf aan te wennen deze meteen te openen met { en ook te sluiten met }. Doe je dit stelselmatig, dan voorkom je een boel gezoek naar de plek waar dan de afsluiting ontbreekt.
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>If/ Else</title>
</head>
<body>
<?php
$controle_variabele = 1;// probeer ook aan te passen naar andere waarden, om te zien wat er gebeurt
$controle_var = '1';//deze wordt zo gebruikt om de werking van === te laten zien
if($controle_variabele == 0){ //als variabele gelijk is aan 0
echo 'De variabele ter controle heeft de waarde 0';
}
else if($controle_var === 1){//wanneer variabele2 gelijk is aan 1, en hetzelfde type heeft als het getal 1 (-> een integer)
echo 'De 2e variabele ter controle heeft de waarde 1 en is een integer';
}
else if($controle_variabele != 1){//wanneer variabele ongelijk is aan 1
echo 'De variabele is ongelijk aan 1';
}
else{ //wanneer aan geen van het voorgaande is voldaan
echo 'Er werd aan geen van de gezochte criteria voldaan';
}
?>
</body>
</html>
Pagina 9
Lusstructuren
De if/ else constructie werkt voor een groot deel hetzelfde als de lusstructuren in PHP, de voorwaarde komt tussen ( ) en de bijbehorende actie komt tussen { en }.
De volgende structuren zijn bekend in PHP, en worden vrij veel gebruikt:
- While
o Zolang er aan de voorwaarde wordt voldaan, herhaal de actie, hierbij is het vaak slim om een teller mee te laten lopen.
- For
o Zelfde als While, met als verschil dat de hele voorwaarde en ook de verandering van de teller tussen ( ) gebeurt.
- Foreach
o Voor elke waarde herhaal actie. Wordt vaak gebruikt in combinatie met een array
De volgende structuren zijn bekend in PHP, en worden vrij veel gebruikt:
- While
o Zolang er aan de voorwaarde wordt voldaan, herhaal de actie, hierbij is het vaak slim om een teller mee te laten lopen.
- For
o Zelfde als While, met als verschil dat de hele voorwaarde en ook de verandering van de teller tussen ( ) gebeurt.
- Foreach
o Voor elke waarde herhaal actie. Wordt vaak gebruikt in combinatie met een array
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>If/ Else</title>
</head>
<body>
<?php
//Voorbeeld While lus
$teller=1; // stel teller in op een waarde
while($teller <= 10){
echo 'De teller heeft nu als waarde '.$teller; // laat de waarde van $teller zien
$teller++; // tel weer 1 bij te teller op
}
//voorbeeld for-lus, hierbij hoef je niet vooraf een $teller in te stellen
/* de "voorwaarde" van de for kan je verdelen in 3 delen, die elk gescheiden worden door een ;
Het eerste deel (voor de 1e puntkomma) is eigenlijk niets anders dan het instellen van de teller, die voor de lus wordt gebruikt
Het 2e deel is de voorwaarde die bij de while tussen () staat
Het derde deel is de regel waarop er een waarde bij de teller wordt opgeteld, hetzelfde als de $teller++ regel bij de while lus
Dat komt er zo uit te zien*/
for($teller2 = 1; $teller2 <= 10; $teller2++){
echo 'De teller heeft nu als waarde '.$teller2;
}
//Zoals aangegeven gebruik je voor de foreach lus vaak een array. Ik gebruik de array met landen weer uit het hoofdstuk over de Array:
$array = array('NL' => 'Nederland','BE' => 'België', 'DE' => 'Duitsland', 'FR' => 'Frankrijk');
// tussen de () begin je sowiezo met de naam van de array variabele. Daarna volgt de as, waarmee je aangeeft als welke variabele je het wil hebben in de lus. Na de as heb je de keuze of je alleen de waarde wil hebben, of ook de bijbehorende key.
foreach($landen as $value){
echo $value;
}
foreach($landen as $key => $value){
echo $key.' is '.$value;
}
//Kies je namen van variabelen verstandig. In het laatste geval is onderstaande veel duidelijker
foreach($landen as $afkorting => $land){
echo $afkorting.' is '.$land;
}
?>
</body>
</html>
Pagina 10
Afsluiting
Tot zover deze tutorial, als het goed is heb je nu al een redelijke basis voor wat betreft de mogelijkheden met PHP. Misschien dat er binnenkort nog een vervolg/ uitbreiding komt waarbij het werken met formulieren wordt behandeld, maar dit laat ik vooralsnog achterwege.
Ook de koppeling met SQL behandel ik nog niet, omdat ik van mening ben dat je eerst de basis goed moet beheersen, voordat je verder gaat. Als je hier handig in bent, of dit allemaal kan en snapt is het overstappen naar de combinatie met SQL heel erg simpel.
Commentaar, tips en/of opmerkingen zijn altijd welkom, maar let wel op dat hier geen discussiepunt is op het forum, maar dat het om de tutorial gaat. Taalfoutjes en dergelijke liefst via de interne PHP-hulp mail.
Vind je dat dingen beter kunnen, meld dat dan ook via de mail. Ik heb de keuzes die ik heb gemaakt met betrekking tot de tutorial bewust gemaakt, dus er zijn redenen voor. Mocht ik het toch ergens op een heel slechte of omslachtige manier hebben gedaan, dan zal ik het natuurlijk aanpassen.
[edit]
Hier een link naar een tutorial over het beginnen met SQL (met dank aan wes):
http://phphulp.nl/php/tutorials/3/474/1088/
En ook nog een link voor als je nog steeds foutmeldingen krijgt:
http://phphulp.nl/php/tutorials/8/507/
[/edit]
Ook de koppeling met SQL behandel ik nog niet, omdat ik van mening ben dat je eerst de basis goed moet beheersen, voordat je verder gaat. Als je hier handig in bent, of dit allemaal kan en snapt is het overstappen naar de combinatie met SQL heel erg simpel.
Commentaar, tips en/of opmerkingen zijn altijd welkom, maar let wel op dat hier geen discussiepunt is op het forum, maar dat het om de tutorial gaat. Taalfoutjes en dergelijke liefst via de interne PHP-hulp mail.
Vind je dat dingen beter kunnen, meld dat dan ook via de mail. Ik heb de keuzes die ik heb gemaakt met betrekking tot de tutorial bewust gemaakt, dus er zijn redenen voor. Mocht ik het toch ergens op een heel slechte of omslachtige manier hebben gedaan, dan zal ik het natuurlijk aanpassen.
[edit]
Hier een link naar een tutorial over het beginnen met SQL (met dank aan wes):
http://phphulp.nl/php/tutorials/3/474/1088/
En ook nog een link voor als je nog steeds foutmeldingen krijgt:
http://phphulp.nl/php/tutorials/8/507/
[/edit]
Reacties
0