🐘

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 (ECHO werkt 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 β†’