Je kan PHP code overal in een html pagina plaatsen. PHP tags hebben een openingstag en een sluitingstag. Alles wat tussen deze tags staat is dus PHP code. Zie onderstaand syntax voorbeeld, waarbij de code in het rood de openings- en sluitings tag bevat:
<?php echo ("dit is een <h1>voorbeeld</h1>"); print ("dit is een <h1>voorbeeld</h1>"); //print heeft de voorkeur ?>
In bovenstaand voorbeeld zie je dat er met behulp van de instructies echo en print informatie naar het scherm wordt gestuurd, waarbij de informatie is geplaatst tussen ronde haken en (dubbele) quotes. Je kunt op die manier dus ook html tags naar je scherm sturen, je kunt zelfs op die manier een hele html pagina 'voor bakken' en naar je beeldscherm sturen.
Wat is hierbij het verschil tussen de syntax van Javascript en PHP
?
Als je met behulp van Javascript iets op het scherm wil krijgen gebruik je document.write().
In PHP kan dit op verschillende manieren, maar de meest gebruikte manier is
wel print zoals in bovenstaand voorbeeld. Je schrijft print met
daarachter tussen een of twee accolades de tekst. LET OP: Hier komen dus geen
haakjes bij kijken! Ander belangrijk punt is de punt komma (;) aan het einde
van een instructie. Zonder deze ";" geeft PHP foutmeldingen.
Net als in Javascript is het handig als je wat uitleg tussen je regels met code door kan typen; dit werkt hetzelfde als in PHP:
<?php
//Hier dan wat commentaar
/* Hier zijn een paar regels met tekst tot commentaar gemaakt. */ # ander commentaar ?>
Concatenation betekent het aan elkaar 'plakken' van gegevens. Dit kunnen teksten zijn (string concatenation) maar je kunt ook variabelen gebruiken.
<?php
// Voorbeeld string concatenation
print ("Dit tekstblok wordt geplakt aan " . " <h2>dit tekstblok</h2>"); // Nog een voorbeeld
$blok = "aangeplakt stuk tekst"; print ("nog een voorbeeld met een variabele: " . $blok); ?>
Verhaal omheen maken: Escape characters gebruiken: \r\n (crlf)
Escapen van quotes en doublequotes met \
Het is toegestaan in PHP om single en double quotes te gebruiken.
Dus:
<?php print ('hello world');
print ("hello world");
?>
is allebei OK. Je mag ze niet door elkaar gebruiken binnen 1 statement, dus onderstaande code is niet toegestaan:
<?php
print ("hello world'); //begint met double quota en eindigt met single quote
?>
Als je in een stuk tekst quotes gebruikt en je wil deze tonen op het scherm, dan kun je dit als volgt doen:
<?php // deze code wordt goed uitgevoerd omdat de single quote wordt gezien als onderdeel van de string
print ("welkom in Harry's bar");
?>
<?php // deze code geeft een error door het gebruik van 3 single quotes
print ('welkom in Harry's bar');
?>
<?php // deze code wordt goed uitgevoerd omdat de single quote achter Harry wordt ge-escaped met een \ backslash
print ('welkom in Harry\'s bar');
?> <?php // deze code wordt goed uitgevoerd omdat de double quotes om Waldolala worden ge-escaped met een \ backslash
print ("welkom in \"Waldolala\"");
?>
Wanneer je een website hebt met een vaste paginaindeling voor meerdere pagina's, dan kan het handig zijn dat je bepaalde delen in aparte bestanden gaat opslaan. Zo kun je een apart bestand maken voor je menu of voor je header en footer. Hiermee heb je als voordeel dat je bepaalde delen van je website maar een keer hoeft te maken en dus bij onderhoud maar 1 bestand hoeft aan te passen.
* include('/bestandspad/bestandsnaam/')
* require('/bestandspad/bestandsnaam/')
* include_once('/bestandspad/bestandsnaam/')
* require_once('/bestandspad/bestandsnaam/')
include() en require() verschillen in zoverre van elkaar dat include() bij een fout een foutmelding genereert en require() leidt tot een fatale fout en het afbreken van het script.
include_once() en require_once() gebruik je als het bestand om te includen maar eenmaal gebruikt gaat worden. Dit kan bijvoorbeeld een bestand zijn waar je je constanten in definieert, of een bestand wat al je functions bevat.
Je mag in principe alle soorten documenten includen. Een .txt, een .html of een .PHP bestand mag worden geincluded. Veel PHP schrijvers geven een te includen bestand de extentie .inc mee. Als je dit doet moet de bestandsextentie .inc dezelfde functionaliteit hebben op je webserver als .php! Als dit niet het geval is (dus als .inc niet is geregistreerd als php) dan wordt het automatisch als een textbestand behandeld! Dit kan gevaarlijk zijn als er passwords instaan. Het is daarom beter om bestanden, die ge-include worden, .php als bestandsextentie te geven. Dan blijft de code op de server! Je kunt wel de naam met inc opsieren, bijvoorbeeld inc_connection.php of inc_header.php.
Dit is hoe de (niet valide) HTML er van een webpage uit zou kunnen zien
<html>
<head> <title>Mijn website</title> </head> <body> <div id="top"><h1>De top van de website</h1></div> <div id="content"><p>De content van de website</p></div> <div id="bottom"><h2>De bottom van de website</h2></div> </body>
</html>
Als de titel van de website en de inhoud van de div 'top' altijd hetzelfde
zijn, dan kun je voor een bepaald gedeelte van de html een apart bestand maken.
Zo kun je een bestand inc_header.php maken met de volgende
inhoud:
<html>
<head> <title>Mijn website</title> </head> <body> <div id="top"><h1>De top van de website</h1></div>
Als de div 'bottom' ook altijd hetzelfde is dan kun je vanaf die div tag tot
aan het einde van de pagina ook een apart bestand maken.
Deze zou je inc_bottom.php kunnen noemen met de volgende inhoud:
<div id="bottom"><h2>De bottom van de website</h2></div> </body>
</html>
De PHP pagina gaat er nu als volgt uit zien en kan als template worden gebruikt
voor al je andere webpages van je site.
Zo kun je onderstaande code opslaan als home.php
Vervolgens kun je de code nog een keer opslaan als contact.php
en alleen de content in de betreffende div aanpassen.
<?php
include('inc_header.php');
?>
<div id="content"><p>De content van de website, bijvoorbeeld de homepage</p></div> <?php
include('inc_footer.php');
?>
Bij uitvoeren van home.php en
contact.php wordt nu de html gegenereerd uit de includes. Het
enige wat je nu per pagina aan moet passen is het gedeelte met de div die hierboven
'content' wordt genoemd. Wanneer je nu in de header of in de footer een aanpassing
doet, dan hoef dat dus maar een keer en het is direct aangepast in de andere
pagina's waar de includes ook worden toegepast. Stel nu dat je bijvoorbeeld
een menu wilt toevoegen aan de bovenzijde van je pagina, dan maak je daar een
div voor met id 'menu', je plaatst je menuitems in die div en je voegt deze
in 'header.inc' toe, na de <body> tag.
Het nieuw ingevoegde menu verschijnt nu op iedere pagina waar 'header.inc' is
ge-include..
Als je een variabele wil aanmaken dan doe je dat door er een dollarteken voor te plaatsen, zie voorbeeld:
<?php $mijnVar = 3; print ($mijnVar); ?>
mijnVar hoeft na de print nu niet tussen dubbele aanhalingstekens omdat mijnVar een variabele is. Twee variabelen optellen gaat ook iets anders, in PHP gebruik je bij combineren van tekst in plaats van een plus een punt.
<?php $txt1="Dit is een verhaaltje"; $txt2="1234"; print $txt1 . " " . $txt2 ; ?>
Een array is een byzondere en een belangrijke variabele. Je kunt in een array meerdere gegevens kwijt die je wel weer individueel kan benoemen en herleiden. Je kunt een array een beetje zien als een matrix of een database table. Omdat je in PHP vaak met gegevens werkt die uit een database komen is de array zeer geschikt om als container te dienen voor die gegevens. Ook gegevens uit formulieren worden in een array opgeslagen.
Een array is een variabele met een naam. Als je meerdere gegevens in die array wilt plaatsen kun je gebruik van nummertjes (de zogenaamde indexed array) of naampjes (de zogenaamde associative array):
Net als JavaScript kent PHP ook de indexed array. Elke waarde in zo'n array heeft een index nummer. Deze index begint altijd bij 0! Van de onderstaande array, zijn de index nummers als volgt:
friends = new Array ('Clark', 'Lois', 'Zorro'); Index Value ------------------------ 0 Clark 1 Lois 2 Zorro
Je kunt een waarde uitlezen door te refereren naar het index-nummer. Dit index nummer plaats je tussen rechte haken.
$friends = array ( 'Clark', 'Lois', 'Zorro' ); print ($friends[0]); // Will return: Clark print ($friends[2]); // Will return: Zorro
PHP kent naast indexed ook associative arrays. Elke waarde in een array heeft een 'sleutel' (key). Deze sleutel is een string en je kunt zelf bepalen hoe deze sleutel is samengesteld. Van de onderstaande array, is de index nummers als volgt:
$friends = array ('superman' => 'Clark Kent', 'spiderman' => 'peter', 'batman' => 'tja'); Key Value ------------------------ superman Clark Kent spiderman peter batman tja
Je kunt een waarde uitlezen door te refereren naar de sleutel. Deze sleutel plaats je als string tussen rechte haken.
$friends = array ( 'superman' => 'Clark', 'spiderman' => 'Peter', 'batman' => 'boe' ); print ($friends['superman']); // Will return: Clark
Opmerkelijk is dat bij het opvragen van het aantal array entries .length
niet werkt in PHP.
In dat geval gebruik je de functie count();
$count = count($array);
Er zijn nog veel meer manieren om met array's om te gaan in PHP. Je kunt deze bekijken op PHP.net, zie http://nl3.PHP.net/manual/en/language.types.array.PHP
Een conditional statement werkt op dezelfde manier als in javascript. (conditional statement is if / else ) Bij PHP is het echter heel erg belangrijk dat je de puntcomma aan het einde niet vergeet! Wanneer je dat wel doet, krijgt je een foutmelding.
<?php $mijnVar = 3; if ($mijnVar == 4) { print $mijnVar; } else { print "ongelijk aan 4"; } ?>
Ook loops werken hetzelfde als in javascript, met als enig verschil dat er nu voor elke variabele een dollarteken staat:
De syntax voor de for en while-loop is hetzelfde als in JavaScript.
// Syntax <?php for ([initialization]; [condition]; [increment]){ [code to be executed]; } ?> // Example <?php for ($counter = 0 ; $counter < 10; $counter){ print ($counter . '<br/>'); } ?>
// Syntax foreach ([array] as [value]){ [code to be executed]; } // Syntax (for associative arrays) foreach ([array] as [key] => [value]){ [code to be executed]; } <?php //Example (for indexed arrays) $friends = array ( 'Clark', 'Lois', 'Zorro' ); foreach ($friends as $value) { print ($value); } //Example (for associative arrays) $friends = array ( 'superman' => 'Clark', 'spiderman' => 'Peter', 'batman' => 'John' ); foreach ($friends as $key => $value) { // Print the values of the array, //and the keys! print ($key . ': ' . $value . '<br/>)'; } ?>
while ([condition]){ [code to be executed]; }
$i = 10; // variabele $i wordt op 10 gezet
while ($i > 0) {
// zolang $i groter is dan 0 wordt onderstaande code uitgevoerd
print ($i . '<br/>)';
$i = $i - 1; // $i wordt met 1 verlaagd
}
Probeer hoe PHP omgaat met quotes en doublequotes.
Arjo’s lijfspreuk is: "bezit van de zaak is ’t einde van ’t vermaak".
Probeer dit maar eens met PHP te echo-en of printen naar het scherm!