Deze website maakt gebruik van diensten van Google voor het tonen van advertenties en het bijhouden van bezoekersstatistieken. Google kan hiermee uw surfgedrag volgen. Zie voor meer informatie het privacybeleid van Google. Via Your Online Choices kunt u zich afmelden voor gepersonaliseerde advertenties. Deze melding verbergen.

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:

<?php
?>
<script language="php">
</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:

<?php

// 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.

int strlen ( string $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.

Tabel 1.1: gegevenstypen
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:

$Naam_van_variabele_1

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:

//getalvariabele:
$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:

//tekstvariabele:
$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.

//tekstvariabele:
$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.

$var1 = "Waarde van variabele"; $var2 = 1234;
$var1
= "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().

<?php

//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

  1. Welke bestandsextensie moet gebruikt worden voor PHP-scripts?
    1. .html
    2. .phtml
    3. .php
    4. .script
  2. Wat is de beste PHP openingstag (declaratie)?
    1. <?php
    2. <script language=”php”>
    3. <?
    4. <%
  3. Met welk teken wordt in PHP aangegeven dat commentaar meerdere regels omvat?
    1. //
    2. #
    3. /*
    4. <!--
  4. Welke variabelenaam is correct om in PHP-scripts te gebruiken?
    1. $1var_
    2. $var_1
    3. $_var1
    4. $1_var
  5. Wat is de parameter van een functie?
    1. Een getal.
    2. Een variabele die de door functie als invoer wordt gebruikt.
    3. Een variabele die de door functie als uitvoer wordt gebruikt.
    4. Een speciaal soort functie.
  6. Waarvoor dient de puntkomma in PHP?
    1. Om in een opsomming aan te geven dat er nog een item komt.
    2. Om aan te geven dat een punt en een komma allebei goed zijn.
    3. Om het einde van een regel aan te geven.
    4. Om het einde van een instructie aan te geven.

Antwoorden zelftest

Antwoorden

  1. c
  2. a
  3. c
  4. b
  5. b
  6. 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.

bool phpinfo ([ int $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 opdracht

Uitwerking

phpinfo.php

<?php
$resultaat = phpinfo();
?>