PHP Academy · Les

Variabelbereik: lokaal en globaal

Begrijp hoe PHP het functiebereik afschermt en hoe u het global-sleutelwoord gebruikt.

Les 3 van 413 stappen

Variabelbereik: lokaal en globaal is een gratis PHP Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject PHP Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus PHP Academy bevat in totaal 4 lessen.

Variabelenbereik in PHP

In PHP heeft elke variabele een bereik — het codegebied waarin deze toegankelijk is.

  • Variabelen die buiten functies worden gemaakt, vallen binnen het globale bereik
  • Variabelen die binnen functies worden gemaakt, vallen binnen het lokale bereik
  • PHP heeft GEEN blokbereik (anders dan C of JavaScript)

Lokaal bereik

Variabelen binnen een functie zijn lokaal — ze verdwijnen wanneer de functie terugkeert:

<?php
function compute(): void {
    $result = 42;  // local variable
    echo $result;  // 42
}

compute();
echo $result ?? 'undefined';  // undefined — $result is gone

Globale variabelen zijn NIET automatisch zichtbaar

In tegenstelling tot veel talen kunnen PHP-functies standaard geen globale variabelen zien — je moet ze expliciet importeren:

<?php
$message = 'Hello';

function printMessage(): void {
    echo $message ?? 'not visible';  // 'not visible'
    // $message from global scope is not accessible here
}

Het sleutelwoord global

Gebruik global $varName binnen een functie om toegang te krijgen tot een globale variabele:

<?php
$counter = 0;

function increment(): void {
    global $counter;
    $counter++;
}

increment();
increment();
echo $counter;  // 2

$GLOBALS als superglobale variabele

$GLOBALS is een array met alle globale variabelen — overal toegankelijk zonder het sleutelwoord global:

<?php
$total = 100;

function addTax(): void {
    $GLOBALS['total'] *= 1.18;  // 18% tax
}

addTax();
echo $total;  // 118

Waarom je global beter vermijdt

Overmatig gebruik van global creëert verborgen afhankelijkheden — functies worden moeilijk te testen en te debuggen. Geef de voorkeur aan het doorgeven van waarden als argumenten:

<?php
// Bad
$db = new PDO(/* ... */);
function getUsers(): array {
    global $db;
    return $db->query('SELECT * FROM users')->fetchAll();
}

// Good
function getUsers(PDO $db): array {
    return $db->query('SELECT * FROM users')->fetchAll();
}

Statische variabelen

Een static-variabele behoudt zijn waarde tussen functieaanroepen, maar blijft lokaal voor de functie:

<?php
function callCount(): int {
    static $count = 0;
    return ++$count;
}

echo callCount();  // 1
echo callCount();  // 2
echo callCount();  // 3

Closures en variabelen vastleggen

Closures (anonieme functies) kunnen variabelen uit het buitenste bereik vastleggen met use:

<?php
$prefix = 'Mr';

$greet = function(string $name) use ($prefix): string {
    return "$prefix. $name";
};

echo $greet('Smith');  // Mr. Smith

Vastleggen via een referentie

Leg vast via een referentie met use (&$var), zodat de closure de variabele uit het buitenste bereik kan wijzigen:

<?php
$total = 0;

$add = function(int $n) use (&$total): void {
    $total += $n;
};

$add(10);
$add(5);
echo $total;  // 15

Pijlfuncties

Pijlfuncties van PHP 7.4 (fn =>) leggen automatisch het buitenste bereik vast op waarde — use is niet nodig:

<?php
$multiplier = 3;
$nums = [1, 2, 3, 4];

$result = array_map(fn($n) => $n * $multiplier, $nums);

print_r($result);  // [3, 6, 9, 12]

Geneste functies

Met PHP kun je een functie binnen een andere functie definiëren, maar de binnenste functie wordt wereldwijd toegankelijk nadat de buitenste functie is aangeroepen:

<?php
function outer(): void {
    function inner(): void {
        echo 'inner called';
    }
}

// inner(); // Fatal: undefined before outer() is called
outer();
inner(); // works now

Korte controle

Wat doet een static-variabele binnen een PHP-functie?

Samenvatting: variabelenbereik

Belangrijke regels voor bereiken in PHP:

  • Functies hebben hun eigen lokale bereik
  • Globale variabelen moeten met global worden geïmporteerd
  • Gebruik $GLOBALS['name'] als alternatief
  • static-variabelen blijven behouden tussen aanroepen binnen een functie
  • Closures leggen variabelen uit het buitenste bereik vast met use
  • Pijlfuncties leggen automatisch vast op waarde
Gratis beginnen

Leer PHP met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
49
Lessen
195

Veelgestelde vragen

Is de les “Variabelbereik: lokaal en globaal” gratis?

Ja — de volledige tekst van “Variabelbereik: lokaal en globaal” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus PHP Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus PHP Academy bevat in totaal 4 lessen.

Wat leer ik in “Variabelbereik: lokaal en globaal”?

Begrijp hoe PHP het functiebereik afschermt en hoe u het global-sleutelwoord gebruikt. Je oefent met PHP Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met PHP Academy te beginnen?

Ervaring vooraf is niet nodig. PHP Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “Variabelbereik: lokaal en globaal”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over PHP Academy?

Ja. Elke les over PHP Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Functies definiëren en aanroepen
  2. Standaard- en variadische parameters
  3. Variabelbereik: lokaal en globaal
  4. Anonieme functies en closures
← Terug naar PHP Academy