Variabelen zijn namen waarin je informatie kan opslaan. De meeste variabelen worden in de loop van een script aangemaakt en krijgen in datzelfde script een waarde toegewezen, vaak op basis van één of meerdere voorwaarden.
De naam van een variabele wordt steeds voorafgegaan door een $ (dollarteken). Voor de naam zelf zijn er wel enkele regels in acht te nemen:
de naam moet starten met een letter of met een underscore;
$x, $tekst, $kleur, $_keuze zijn geldige namen. De naam mag NIET starten met een cijfer;
$1x, $5tekst zijn geen geldige namen;
de naam mag letters, cijfers en underscores bevatten;
$x_1, $tekst5, $kleur_blauw zijn geldige namen;
Let op! De naam is hoofdlettergevoelig: $X en $x zijn verschillende variabelen.
Tekst kan je heel eenvoudig aan een variabele toewijzen, zoals je kan zien in volgend voorbeeld.
Maak een nieuw PHP-bestand VariabelenTekst.php aan in je PHP-map en test volgende scripts.
<?php
$tekst = "Deze tekst zit nu in een variabele";
?>
Eerst zet je de naam van de variabele, voorafgegaan door het dollarteken.
Daarna het gelijkheidsteken en daarna de waarde. De waarde moet, in het geval van tekst, tussen (dubbele) aanhalingstekens staan.
Om de waarde van de variabele weer te geven, kan je opnieuw gebruik maken van ‘echo’.
Plaats het echo-commando mee in VariabelenTekst.php zodat je volgend script krijgt.
<?php
$tekst = "Deze tekst zit nu in een variabele";
echo $tekst;
?>
Merk op! De variabele na echo moet niet tussen aanhalingstekens gezet worden!
Om tekst toe te wijzen aan een variabele, mag je ook enkele aanhalingstekens gebruiken, zoals in onderstaand script (VariabelenTekstB.php).
<?php
$x ='ABC';
echo $x;
?>
Er is wel degelijk een verschil tussen enkele en dubbele aanhalingstekens! Bij enkele aanhalingstekens wordt de tekst letterlijk in de variabele gestoken. Als je dubbele aanhalingstekens gebruikt, worden variabelen in de toewijzing eerst voorzien van een waarde. Het verschil wordt meteen duidelijk uit onderstaande voorbeelden.
Maak enkeleAanhalingstekens.php aan en plaats wederom in je PHP-map met onderstaand script en test beide scripts.
<?php
$x = 'a';
$y = 'In deze variabele steken we variabele x: $x';
echo $y;
// De uitvoer van dit script zal zijn:
// In deze variabele steken we variabele x: $x
?>
Als we voor variabele $y dubbele quotes gebruiken in het script dubbeleAanhalingstekens.php met volgende code, verkrijgen we een andere output.
<?php
$x = 'a';
$y = "In deze variabele steken we variabele x: $x";
echo $y;
// De uitvoer van dit script zal zijn:
// In deze variabele steken we variabele x: a
?>
Wat als we tekst met een aanhalingsteken in een variabele willen steken? Bijvoorbeeld: we willen namen in een variabele $naam steken. Bij ‘Janssens’ en ‘Peeters’ zal dat geen probleem zijn maar wat bij ‘D’Haen’? Met dubbele quotes zal dat nog lukken maar bij het gebruik van enkele quotes zal je een foutmelding krijgen.
Om dat op te lossen moet je het afkappingsteken in de naam escapen. Dat doe je door het te laten voorafgaan door een backslash.
Maak het script probleemAanhalingstekens.php aan met onderstaande code en test het script.
<?php
// Dit zal niet werken:
$naam = 'D'Haen';
// Dit zal wel werken:
$naam = 'D\'Haen';
echo $naam;
?>
Je kan strings of variabelen aan elkaar 'kleven' door gebruik te maken van een '.' (punt). We testen dit door het voorbeeld tekstAanElkaarKleven.php met volgende code. Sla dit bestand opnieuw op in je PHP-map en test het script.
<?php
$naam = "Janssens";
$voornaam = "Tine";
echo $voornaam.$naam;
?>
Als je een spatie tussen naam en voornaam wil toevoegen moet je de spatie echt toevoegen (spatieTussenTekst.php).
<?php
$naam = "Janssens"; $voornaam = "Tine";
echo $voornaam. " " .$naam;
?>
Een programma is meestal een opeenvolging van instructies. Op basis van voorwaarden wordt bepaald welke instructies uitgevoerd moeten worden. Een vaak gebruikte constructie is als… dan. Ook in PHP bestaat deze constructie.
<?php
if(voorwaarde_voldaan){
// hier volgen de instructies als de voorwaarden waar zijn
}
?>
Maak een nieuw PHP bestand (alsDan.php) met volgend script:
<?php
$x = 5;
if ($x ==5){
echo "x is gelijk aan 5";
}
?>
En wat als $x niet gelijk is aan 5? Dan moeten we een else toevoegen.
Maak onderstaand voorbeeld in else.php
<?php
$x = 6;
if($x == 5){
echo "X is gelijk aan 5";
} else{
echo "X is niet gelijk aan 5";
}
?>
Als je in je script moet controleren op meerdere voorwaarden, kan je if-else statements gaan nesten. In elke if {} of else {} kan je namelijk opnieuw controles gaan inbouwen.
Voorbeeld genesteIf.php: controleer of een getal groter is dan 0 en kleiner dan 10.
<?php
$x = 7;
if($x > 0){
if($x < 10){
echo "x is groter dan 0 en kleiner dan 10";
} else{
echo "x is groter dan 10";
}
} else{
echo "x is niet groter dan 0!";
}
?>
Hier onder een overzicht van de logische operatoren.
Tot hiertoe hebben we variabelen aangemaakt binnen een script en die variabelen binnen datzelfde script een waarde toegekend. Uiteraard zijn er ook methoden om die variabelen buiten het script, op een nieuwe pagina, te wijzigen of gebruiken door gebruik te maken van parameters. Deze parameters kunnen we dan mee doorsturen naar een volgende pagina. Er zijn 2 methoden: GET en POST.
Via de GET methode worden de parameters en hun waarden doorgegeven via de URL. Bij de POST methode zijn de waarden van de parameters niet zichtbaar in de URL. De laatste methode krijgt de voorkeur, dus gaan we niet dieper in op de GET methode, maar wel op de POST methode.
Om parameters door te geven via de POST methode, gaan we als volgt tewerk. Je definieert in het formulier dat je met de POST methode werkt. Nadien, wanneer je de waarde van de parameter wil opvragen in een ander bestand, gebruik je volgende constructie:
_$POST["variabeleNaam"]
Maak volgend voorbeeld formulier.php
<html>
<head>
<title>Invoer met een formulier</title>
</head>
<body>
<form action="verwerkFormulier.php" method="POST">
Naam: <input type="text" size="30" name="txtNaam"><br>
Voornaam: <input type="text" size="30" name="txtVoornaam"><br>
<input type="submit" value="Verzenden">
</form>
</body>
</html>
De namen die je invult bij name zijn de namen die je zal gebruiken als POST variabelen.
De pagina waar je de waarden van de parameters zal gebruiken, kan er bijvoorbeeld als volgt uit zien (verwerkFormulier.php):
<?php
$naam = $_POST["txtNaam"];
$voornaam = $_POST["txtVoornaam"];
echo "Dag $voornaam $naam!";
?>
Merk op!
Als je in je <form> tag geen action opgeeft, wordt de informatie uit het formulier teruggestuurd naar het formulier zelf. Heet je formulier ‘formulier.php’ dan worden alle gegevens dus naar formulier.php gestuurd.
Als je geen method opgeeft, gaat de browser standaard POST gebruiken om de gegevens te verzenden.