PHPBoek();
1 De PHP Syntaxis
Een PHP-editor en de testomgeving zijn geïnstalleerd. Tijd om ze te gaan gebruiken. Allereerst worden hier wat kenmerken van PHP-scripts beschreven: de PHP syntaxis.
Theorie
PHP Bestanden
PHP-scripts worden opgeslagen in PHP-bestanden. Een PHP-bestand is een bestand dat eindigt met de extensie .php. Door die extensie weet de server dat het bestand een PHP-script bevat, en zal dan de php-software aanroepen om het script te verwerken.
Een PHP-script in een bestand dat niet eindigt op .php, maar op .html of iets anders zal niet werken. PHP-scripts kunnen dus niet in HTML-bestanden worden opgenomen. Omgekeerd werkt echter wel. Het is geen enkel probleem om HTML-code in PHP-bestanden te verwerken, en dat is maar goed ook! PHP is een aanvulling op HTML, geen vervanger van HTML.
PHP declaratie
Zoals gezegd in de vorige paragraaf, kan een PHP-bestand ook HTML bevatten. Om dit mogelijk te maken moet in het script worden aangegeven waar het PHP-gedeelte begint en waar het PHP-gedeelte ophoudt. Dit noemen we de PHP declaratie die een PHP-codeblok afbakent.
Er zijn vier mogelijkheden om PHP-scripts te declareren; echter alleen de eerste twee uit onderstaand overzicht worden standaard door PHP herkend:
?>
</script>
?>
%>
Aangezien alleen de eerste twee methoden standaard herkend worden, is het verstandig om alleen de eerste methode te gebruiken. Deze werkt altijd en is korter dan de tweede. De laatste twee worden sterk afgeraden, want niets is er zo vervelend dan alle declaratietags te moeten vervangen als het script niet werkt op een bepaalde server!
<?php
geeft het begin van een PHP-script aan; en ?>
het einde. Op die manier kan PHP en HTML afwisselend door elkaar in hetzelfde document gebruikt worden. Er kan meer dan één PHP-codeblok in een PHP-bestand voorkomen en alles buiten de codeblokken wordt ongewijzigd als HTML naar de browser gestuurd.
Notities
Zoals met behulp van de <!-- en --> tags in HTML commentaar in de broncode kan worden opgenomen, kan dat op vergelijkbare wijze ook in PHP. Notities (of commentaar) worden door de server overgeslagen tijdens het verwerken van het PHP-script. Naast het maken van opmerkingen in scripts kan commentaar gebruikt worden om een (gedeelte) van het script even 'aan de kant' te zetten.
Er zijn drie manieren om notities in PHP-scripts op te nemen. Twee methoden zorgen er voor dat de rest van een regel code als commentaar wordt gezien. De laatste methode maakt het mogelijk meerdere regels commentaar op te nemen, waarbij dan alleen begin en eind hoeft te worden aangegeven zonder in iedere regel aan te geven dat het commentaar is:
// commentaar (enkele regel)
# commentaar (enkele regel)
/* commentaar
(meerdere regels)
*/
?>
Het is verstandig om met behulp van notities zo goed mogelijk vast te leggen wat de verschillende onderdelen van een script doen. Nuttig commentaar maakt het mogelijk om sneller in te zien wat een script precies doet. Handig als iemand anders het script moet begrijpen of als een oud script op een bepaald moment aangepast moet worden.
In dit boek is zo veel mogelijk nuttig commentaar aan voorbeeldscripts toegevoegd; niet alleen als goed voorbeeld, maar vooral ook om duidelijk te maken wat verschillende onderdelen in een script doen. Goed commentaar is het halve werk, misschien niet nu, maar zeker wel bij het terugkijken van een oud script!
Functies
Een ander belangrijk onderdeel van PHP is het grote aantal standaardfuncties dat beschikbaar is. Een functie voert een bepaalde handeling uit en geeft het resultaat van die handeling als uitvoer terug. Sommige functies hebben een bepaalde invoer nodig, andere functies kunnen zonder. Deze invoer wordt parameter genoemd. Functies die meer dan één parameter nodig hebben zijn geen uitzondering in PHP.
Hieronder staat de functie strlen()
afgebeeld. Deze functie berekent de tekstlengte van de opgegeven parameter.
$string
)
In de officiële PHP-documentatie worden functies op deze manier afgebeeld, waarna ze nader worden toegelicht. Voor dit boek is er voor gekozen om dit op dezelfde manier te doen. De PHP-documentatie kan dan eenvoudig als aanvulling op dit boek gebruikt worden.
int en string in het voorbeeld van strlen()
geven aan van welk gegevenstype de uitvoer is en welk gegevenstype als invoer (parameter) opgegeven moet worden. strlen()
verwacht dus een tekenreeks (string) als invoer en geeft een geheel getal (int) als uitvoer terug. Alle mogelijke typen zijn weergegeven in tabel 1.1.
De uitvoer van een functie (in dit geval de lengte van de opgegeven string) kan vervolgens worden opgeslagen in een variabele. De volgende paragraaf gaat verder in op variabelen.
Type | Toelichting |
---|---|
bool (boolean) | De waarde TRUE (waar; 1) of FALSE (onwaar; 0). |
int (integer) | Een positief of negatief geheel getal of de waarde nul. |
float | Een positief of negatief kommagetal. |
string | Een tekenreeks (tekst). |
array | Een lijst met waarden van de hierboven genoemde vier typen. |
object | Een object (komt verder niet ter sprake in dit boek). |
resource | Een referentie naar een externe gegevensbron, bijvoorbeeld een MySQL database. |
NULL | Een variabele zonder waarde. |
mixed | De functie kan met meer dan één type parameter overweg (maar mogelijk niet alle). |
number | De functie verwacht een integer of een float als parameter. |
void | De functie geeft geen uitvoer of verwacht geen invoer. |
callback | De functie verwacht een andere zelf te kiezen functie als parameter. |
Indien een parameter van een functie tussen [rechte haken] is geschreven, is deze parameter niet verplicht en kan dus weggelaten worden. Een voorbeeld van een functie met een niet-verplichte parameter komt terug in de opgave aan het einde van dit hoofdstuk.
Variabelen
Variabelen in PHP zijn een soort van 'vakjes' waar je tijdelijk gegevens in op kunt slaan. Zo kun je een getal in een variabele opslaan om er verderop in het script mee verder te rekenen.
Een variabele in PHP begint altijd met een dollarteken gevolgd door de naam van de variabele. De naam van de variabele is hoofdlettergevoelig, begint in ieder geval met een letter en kan daarna ook nog cijfers en underscores ( _ ) bevatten:
Om nu een waarde aan de variabele toe te kennen, wordt er na de naam van de variabele een =-teken gezet met daarachter de waarde van de variabele:
$Naam_van_variabele_1 = 1234;
Behalve getallen zijn er nog andere typen variabelen. De typen variabelen zijn hetzelfde als de typen die gebruik worden bij functies. De typen in tabel 1 zijn dus ook van toepassing op variabelen (de laatste drie gelden alleen voor functies). In tegenstelling tot in veel andere programmeertalen is het in PHP niet nodig om iedere variabele aan te maken en aan te geven van welk type deze is. PHP regelt dat volledig automatisch.
Als je tekst aan een variabele wilt toekennen, moet deze altijd tussen aanhalingstekens gezet worden. Op die manier weet PHP waar de waarde van de variabele begint en waar deze eindigt:
$Naam_van_variabele_1 = "Waarde van variabele";
De naam van een variabele is uniek. Als we de laatste twee codefragmenten in één script zouden zetten, zal $Naam_van_variabele_1
niet meer de waarde 1234 hebben, maar in plaats daarvan Waarde van variabele. De inhoud van de variabele wordt dus overschreven. Andersom, in onderstaand fragment krijgt variabele $var1
de waarde 1234.
$var1 = "Waarde van variabele";
//getalvariabele:
$var1 = 1234;
Overigens komt het ook voor dat je juist wil dat een variabele overschreven wordt. Dan gebruik je wel dezelfde naam voor de variabele, zodat PHP weet welke variabele je wil overschrijven.
Behalve direct een waarde aan een variabele toe te kennen, kan de waarde van een variabele ook afhangen van een functie. Hierbij wordt de variabele niet direct een waarde gegeven zoals in bovenstaande voorbeelden, maar wordt de variabele gelijk gesteld aan een of andere functie. Een voorbeeld hiervan is opgenomen in de paragraaf Combineren.
Instructies
Het toekennen van een waarde aan een variabele of het aanroepen van een functie zijn voorbeelden van instructies. In PHP moet iedere instructie afgesloten worden met een puntkomma. Wellicht zijn ze al opgevallen in de voorgaande voorbeelden.
Door het gebruik van de puntkomma is het in PHP niet nodig om iedere instructie op een nieuwe regel te zetten. Door de puntkomma weet PHP waar een instructie eindigt en daardoor kunnen er prima meerdere instructies op één regel geplaatst worden. Andersom kan een instructie ook over meerdere regels verspreid worden.
= "Waarde van variabele"
; $var2 =
1234;
Bovenstaande twee voorbeelden zijn dan ook correcte PHP code. Of ze duidelijk leesbaar zijn is een ander verhaal…
Combineren
Functies en variabelen kunnen gecombineerd worden in één enkel PHP-script. Onderstaand script berekent de lengte van $var1
en slaat deze op in $var2
door gebruik te maken van strlen()
.
//we willen de lengte van onderstaande string weten:
$var1 = "Waarde van variabele";
//hiervoor gebruiken we de functie strlen:
$var2 = strlen($var1);
//$var2 heeft nu als waarde de tekenlengte van $var1.
?>
Na uitvoeren van bovenstaand script zal de waarde van $var2
gelijk zijn aan 20. Belangrijk om hier in te zien is dat de variabele $var2
gelijk wordt gesteld aan de functie strlen()
. De waarde die de functie strlen()
terug geeft wordt dus opgeslagen in variabele $var2
.
Zelftest
- Welke bestandsextensie moet gebruikt worden voor PHP-scripts?
- .html
- .phtml
- .php
- .script
- Wat is de beste PHP openingstag (declaratie)?
- <?php
- <script language=”php”>
- <?
- <%
- Met welk teken wordt in PHP aangegeven dat commentaar meerdere regels omvat?
- //
- #
- /*
- <!--
- Welke variabelenaam is correct om in PHP-scripts te gebruiken?
- $1var_
- $var_1
- $_var1
- $1_var
- Wat is de parameter van een functie?
- Een getal.
- Een variabele die de door functie als invoer wordt gebruikt.
- Een variabele die de door functie als uitvoer wordt gebruikt.
- Een speciaal soort functie.
- Waarvoor dient de puntkomma in PHP?
- Om in een opsomming aan te geven dat er nog een item komt.
- Om aan te geven dat een punt en een komma allebei goed zijn.
- Om het einde van een regel aan te geven.
- Om het einde van een instructie aan te geven.
Antwoorden
- c
- a
- c
- b
- b
- d
Oefening: PHPInfo
De functie phpinfo()
laat allerhande informatie over de geïnstalleerde PHP versie zien. Deze functie kan dus gebruikt worden om te controleren of PHP correct is geïnstalleerd.
$what
= INFO_ALL
] )
Via de parameter $what
kan worden aangegeven dat, in plaats van alle informatie, slechts een gedeelte getoond moet worden. Om alle mogelijk informatie te tonen kan de parameter weggelaten worden. Als de functie succesvol wordt uitgevoerd, wordt de waarde TRUE
als resultaat gegeven. Als het uitvoeren van de functie mislukt, wordt de waarde FALSE
terug gegeven.
Opdracht
Schrijf een PHP-script dat alle informatie over de PHP-installatie laat zien door gebruik te maken van phpinfo()
. Sla de TRUE
/FALSE
waarde die de functie teruggeeft op in de variabele $resultaat
.
Sla het script op met de bestandsnaam phpinfo.php en roep het aan via de webbrowser. Sla het script dus op in de map /htdocs/phpboek van de webserversoftware die je in het vorige hoofdstuk hebt geïnstalleerd en bekijk het via http://127.0.0.1/phpboek/phpinfo.php. Of upload het script naar je webhost en bekijk het via je webspace.
Uitwerking
phpinfo.php
<?php
$resultaat = phpinfo();
?>