De naam van een variabele moet beginnen met het $-teken, bijvoorbeeld $piet
Je hoeft in PHP variabelen niet te declareren.
PHP ziet aan de toegekende waarde wel of het om een getal of een woord (string) gaat.
Als je de volgende php-code hebt:
dan krijgt $var3 de waarde "jan klaassen" (de beide strings worden "opgeteld"; in de meeste programmeertalen
moet je dan een + gebruiken, maar in PHP gebeurt dat dus met een punt)
Arrays
Er zijn ook arrays. Een array is een geindexeerde rij getallen of strings.
Als je een array $b hebt, dan is $b[0] de eerste van de rij, $b[1] is de tweede van de rij, enz.
Met count($b) wordt in dat geval bedoeld: het aantal elementen van die rij.
de optelling van $a en $b (als $a en $b getallen zijn)
$a . $b
de optelling (concatenatie) van $a en $b (als $a en $b strings zijn)
$a - $b
de aftrekking van $a en $b
$a * $b
de vermenigvuldiging van $a en $b
$a / $b
de deling van $a door $b
$a % $b
de rest bij de deling van $a door $b (in Pascal: mod )
Logische operatoren
Betekenis
$a and $b (ook mag: $a && $b)
is waar als $a en $b beide waar zijn
$a or $b (ook mag: $a || $b)
is waar als $a of $b waar is (het inclusieve of)
$a xor $b
is waar als $a of $b waar is, maar niet allebei (het exclusieve of)
! $a
is waar als $a niet waar is
16.6.2. Opdrachten in PHP
Programmaregels in PHP lijken veel op programmaregels in C of Java of C++
Elke regel wordt afgesloten met een puntkomma.
De opdracht $teller = $teller + 1; wordt meestal afgekort tot: $teller++
Variabelen hoef je niet te declareren.
PHP maakt uit de toekenning van waarden op om welke soort het gaat.
Eventueel kun je het type er tussen haakjes voor zetten, als volgt:
Iets op het scherm afdrukken gaat met print of met echo
Daarbij kun je tekst en variabelen gewoon door elkaar gebruiken.
print ("Dit is een tekst en de waarde van de variabele \$getal: $getal ");
Als $getal de waarde 7 heeft dan wordt er in dit geval afgedrukt: Dit is een tekst en de waarde van de variabele $getal: 7
Doordat het ontsnappingsteken \ voor de eerste $getal staat wordt de tekst $getal afgedrukt, en omdat
het onsnappingsteken niet voor de tweede $getal staat wordt daar de waarde 7 afgedrukt.
Het kan ook zo:
echo "Dit is een tekst en de waarde van de variabele \$getal: $getal ";
Er is een uitzondering: als je een functie toepast op een variabele (bijv. round($getal,2) : die functie zorgt er
voor dat $getal wordt afgerond op twee
decimalen) dan kun je het niet klakkeloos tussen de tekst zetten. Je moet dan de concatenatie-punt gebruiken:
echo "Dit is een tekst en de afgeronde waarde ".round($getal,2)." die wordt afgedrukt
door PHP";
Samengestelde opdrachten moeten tussen accolades worden geplaatst.
(zie de voorbeelden hierna)
16.6.3. Voorwaardelijke opdrachten in PHP (met IF )
Syntax van voorwaardelijke opdrachten met IF:
if (voorwaarde)
{
opdracht1;
opdracht2;
opdracht3 enz;
}
De voorwaarde moet dus tussen haakjes staan.
Het woordje THEN wordt hier niet gebruikt !
En de opdrachten die, als aan de voorwaarde is voldaan, moeten worden uitgevoerd, staan tussen accolades. Elke opdracht moet met een puntkomma worden afgesloten.
Voorbeeld:
if ($teller>10) {
print("Er zijn al meer dan 10 bezoekers geweest");
print("Het gaat goed!");
}
Ook kan if ( ) { ... } else { ... } worden gebruikt, dus zo:
Waarom de laatste opdracht na een case-voorwaarde steeds break is lees je hieronder.
Als aan geen van de voorwaarden na case voldaan is worden de opdrachten na default uitgevoerd, dat
is altijd het laatste blokje van een switch-opdracht.
Break en continue.
Als ergens in de lus een break staat, dan zal de lus onmiddelijk gestopt worden, en gaat de uitvoer van het script verder op de eerste regel na de lus.
Bij de switch-opdracht is dat meestal nodig (zie de code hierboven) , omdat steeds gekeken wordt of er aan de voorwaarde na case
voldaan is. Als er niet aan voldaan wordt worden de opdrachten na die case overgeslagen, en wordt gekeken of
er aan de voorwaarde na de volgende case wordt voldaan.
Als er wel aan de voorwaarde na case wordt voldaan dan worden de opdrachten na die case uitgevoerd, en als er geen break in voorkomt ook alle opdrachten na de volgende case-voorwaarden. Meestal is dat niet de bedoeling, en dan zorg je er met een break-opdracht voor dat de pdrachten na de volgende case-voorwaarden worden overgeslagen.
Als je continue gebruikt i.p.v. break dan wordt ook de uitvoer van de huidige lus gestopt, maar
dan wordt vervolgd met de lus met de volgende iteratiewaarde.
Tenslotte heb je ook nog de verkorte if-opdracht, die alleen gebruikt kan worden als de opdrachten na if en else beide
toekenningsopdrachten zijn met dezelfde variabele.
Dit betekent hetzelfde als: for teller=1 to 10 ............ next i (in basic)
of in pascal: for teller:=1 to 10 do
begin
opdracht1;
opdracht2;
opdracht3 enz;
end;
De while-lus gaat in php als volgt:
while (voorwaarde) { opdrachten }
Als de voorwaarde in het begin al false is dan worden de opdrachten geen enkele keer uitgevoerd.
De do-while-lus gaat in php als volgt:
do { opdrachten } while (voorwaarde);
Hierbij worden de opdrachten minstens één keer uitgevoerd.
Als je een array met sleutelwaarden gebruikt, dan kun je handig gebruik maken van each
Als de array in $b is opgeslagen, dan geeft each($b) de eerste keer dat die opdracht wordt uitgevoerd het eerste
element van de array, de tweede keer het tweede element, enz.
En daarbij kun je de sleutel opvragen, en de waarde.
Als $t = each($b) dan geeft $t[key] de sleutelwaarde, en $t[value] de waarde, dus $t is dan
een array dat uit twee elementen bestaat, nl. $t[key] $t[value]
Als je de volgende PHP-code hebt:
$b["J"] = "Jan";
$b["P"] = "Piet";
$b["K"] = "Klaas";
for ($n = 0; $n < count($b); $n++)
{
$t = each($b);
print ("De sleutel is \$t[key] en de waarde is \$t[value] ");
}
dan is de uitvoer: De sleutel is J en de waarde is Jan
De sleutel is P en de waarde is Piet
De sleutel is K en de waarde is Klaas
Als je een array met sleutelwaarden gebruikt, dan kun je ook handig gebruik maken van foreach
Dan worden alle elementen van de array doorlopen.
Maar het is niet de bedoeling dat we die 31 option-regels uittypen. Als je PHP gebruikt kan het m.b.v. een for-lus.
Het keuzemenu voor de 12 maanden kan ook m.b.v. een for-lus als we de namen van de maanden in een array zetten.
Bij het keuzemenu voor het jaar is het de bedoeling dat er uit de jaren 1950 t/m 2000 gekozen kan worden.
Dat kan ook weer m.b.v. een for-lus.
We beginnen met de keuzelijst voor de dag.
Dat kan op de volgende manier met PHP: