PHP Β· Les 1
Wat is PHP?
PHP-tags, echo, comments en je eerste script uitvoeren in de browser via PHP-WASM. Β· 25 min
Wat is PHP?
PHP staat voor PHP: Hypertext Preprocessor β een server-side scripttaal die al meer dan 25 jaar aan de basis staat van het web. WordPress, Wikipedia, Facebook (vroeger) en Symfony zijn allemaal gebouwd op PHP.
PHP (server-side)
- β Draait op de server (of in WASM)
- β Genereert HTML als output
- β Kan databases lezen/schrijven
- β Taal achter Symfony
JavaScript (client-side)
- π Draait in de browser
- π Manipuleert de DOM
- π Reageert op gebruikersacties
- π Ook server-side via Node.js
β οΈ Let op verschil met JS
In JS schrijf je code die de browser uitvoert. PHP-code wordt normaal gesproken door de server uitgevoerd vΓ³Γ³rdat de pagina naar de browser gaat. In deze track gebruiken we PHP-WASM β PHP gecompileerd naar WebAssembly β zodat je PHP direct in de browser kunt uitvoeren zonder server.
π Komt terug in Symfony
Symfony is een PHP-framework. Alle controllers, entities, formulieren en services die je in Symfony schrijft zijn PHP-klassen. Deze track geeft je de PHP-basis die je nodig hebt.
PHP-tags: hoe PHP-code eruitziet
PHP-code staat altijd tussen <?php en ?>. Dit is hoe de server (of WASM-engine) weet welk deel PHP is en welk deel gewone HTML.
<!-- Gewone HTML -->
<h1>Welkom</h1>
<?php
// Hier begint PHP-code
echo "Hallo vanuit PHP!";
?>
<!-- Weer gewone HTML -->
<p>Voettekst</p>
Regels om te onthouden
- π Elk PHP-statement eindigt met een puntkomma (
;) - π PHP is case-insensitief voor keywords (
ECHOwerkt ook), maar variabelen zijn case-sensitief - π Wanneer er alleen PHP in het bestand staat, laat je de sluitende
?>weg β dat is best practice in Symfony
<?php
// Puntkomma verplicht!
echo "Regel 1";
echo "Regel 2";
// Sluitende tag weglaten als bestand alleen PHP bevat (best practice)
β οΈ Let op verschil met JS
In JS heb je geen openingstag nodig β een .js-bestand is altijd JavaScript. PHP onderscheidt HTML en PHP via de <?php tag. Dit maakt het mogelijk om PHP en HTML te mixen in één bestand (al doe je dat in Symfony liever niet).
echo en strings
echo is de meest gebruikte manier om output te produceren in PHP. Het print tekst, HTML of de waarde van een expressie.
<?php
echo "Hallo wereld!"; // Dubbele aanhalingstekens
echo 'Dit is ook een string'; // Enkele aanhalingstekens
echo 42; // Getal
echo 3.14; // Float
echo true; // Print: 1 (bool true = 1)
echo false; // Print niets (bool false = "")
echo "<br>"; // HTML mag ook
Enkel vs. dubbel aanhalingsteken
<?php $naam = "Jan"; // Dubbele quotes: variabelen worden INGEVULD echo "Hallo $naam!"; // β Hallo Jan! // Enkele quotes: LETTERLIJK afgedrukt echo 'Hallo $naam!'; // β Hallo $naam!
Concatenatie met punt (.)
<?php $voornaam = "Jan"; $achternaam = "de Vries"; echo $voornaam . " " . $achternaam; // β Jan de Vries
β οΈ Let op verschil met JS
In JS gebruik je + voor string-concatenatie: "Hallo " + naam.
In PHP gebruik je een punt: "Hallo " . $naam.
Variabele-interpolatie in dubbele aanhalingstekens werkt vergelijkbaar met JS template literals (`Hallo ${naam}`).
Comments
PHP kent drie soorten comments β allemaal nuttig in Symfony-projecten.
<?php
// EΓ©n-regel comment β meest gebruikt
echo "Zichtbaar"; // Dit verschijnt in de output
/*
Meerdere regels.
Handig voor uitgebreidere uitleg.
*/
# Bash-stijl, ook geldig maar minder gebruikelijk
echo "Ook zichtbaar";
PHPDoc β de Symfony-standaard
<?php
/**
* Berekent de prijs inclusief BTW.
*
* @param float $prijs Prijs exclusief BTW
* @param float $tarief BTW-tarief (standaard 21%)
* @return float Prijs inclusief BTW
*/
function prijsInclBtw(float $prijs, float $tarief = 0.21): float {
return $prijs * (1 + $tarief);
}
π Komt terug in Symfony
In Symfony gebruik je PHPDoc-comments uitgebreid bij controllers, services en entities. Symfony's Attributes (#[Route(...)], #[ORM\Entity]) staan ook boven methoden en klassen β ze lijken op comments maar zijn functionele PHP 8-code.
var_dump β debuggen in PHP
var_dump() is jouw beste vriend bij het debuggen. Het toont niet alleen de waarde maar ook het type van een variabele.
<?php
var_dump("hallo"); // string(5) "hallo"
var_dump(42); // int(42)
var_dump(3.14); // float(3.14)
var_dump(true); // bool(true)
var_dump(false); // bool(false)
var_dump(null); // NULL
var_dump([1, 2, 3]); // array(3) { [0]=> int(1) ... }
print_r voor arrays β leesbaarder
<?php
$data = ["naam" => "Jan", "leeftijd" => 20];
print_r($data);
/* Output:
Array
(
[naam] => Jan
[leeftijd] => 20
)
*/
β οΈ Let op verschil met JS
In JS gebruik je console.log() voor debuggen β output gaat naar de browser-console.
In PHP gebruik je var_dump() of print_r() β output gaat naar de HTML-pagina (of terminal).
In Symfony gebruik je de Symfony Profiler (de debug toolbar onderaan de pagina) in plaats van var_dump.
π Komt terug in Symfony
Gebruik in Symfony dump($variable) (de Symfony-helper) in plaats van var_dump. De output verschijnt netjes in de Symfony Profiler toolbar zonder de HTML te breken.
Sandbox β schrijf je eerste PHP
De code wordt uitgevoerd via PHP-WASM β PHP gecompileerd naar WebAssembly, draait volledig in je browser. Eerste keer laden duurt 5β15 seconden.
// output
Klik op Uitvoeren om te starten...
Kennischeck
Les 1 afronden
Ga door naar variabelen en datatypes β