W3docs

PHP-Schlüsselwörter

Schlüsselwörter sind reservierte Wörter in PHP mit eingebauter Bedeutung, die nicht als Bezeichner für Variablen, Funktionen oder Klassen verwendet werden dürfen.

Was sind PHP-Schlüsselwörter?

Schlüsselwörter sind reservierte Wörter, denen PHP eine eingebaute Bedeutung verleiht. Sie definieren die Struktur der Sprache — Bedingungen, Schleifen, Klassen, Fehlerbehandlung und mehr — weshalb PHP sie anders behandelt als selbst gewählte Namen. Diese Seite listet alle PHP-Schlüsselwörter auf, erklärt die Regeln rund um sie und zeigt, wie die gebräuchlichsten verwendet werden.

Da sie reserviert sind, können Sie ein Schlüsselwort nicht als gewöhnlichen Bezeichner verwenden:

<?php
// These all cause a parse error — the words are reserved:
$list = [];        // OK: "list" is fine as a variable name in modern PHP...
function for() {}  // Parse error: "for" cannot be a function name
class If {}        // Parse error: "if" cannot be a class name

Zwei praktische Regeln ergeben sich daraus:

  • Schlüsselwörter sind nicht case-sensitiv. if, IF und If bedeuten alle dasselbe, daher funktioniert ECHO "hi"; problemlos. (Variablennamen und selbst definierte Namen sind hingegen case-sensitiv.)
  • Konstanten wie true, false und null sind ebenfalls reserviert. Sie verhalten sich wie Schlüsselwörter, auch wenn sie wie gewöhnliche Werte aussehen.

Liste der PHP-Schlüsselwörter

Die folgende Tabelle gruppiert die Schlüsselwörter nach ihrer Funktion, was sie wesentlich leichter zu merken macht als eine einzige flache Liste.

KategorieSchlüsselwörter
Bedingungenif, else, elseif, endif, switch, case, default, endswitch, match
Schleifenfor, endfor, foreach, endforeach, while, endwhile, do, break, continue
Funktionen & Generatorenfunction, fn, return, yield, use, static, global
Klassen & OOPclass, interface, trait, enum, extends, implements, new, clone, abstract, final, public, protected, private, const, var, instanceof, insteadof
Namespaces & Autoloadingnamespace, use, include, include_once, require, require_once
Fehlerbehandlungtry, catch, finally, throw
Sprachkonstrukteecho, print, array, list, isset, unset, empty, die, exit, eval
Logische Operatorenand, or, xor
Typen & Wertetrue, false, null, callable, int, float, string, bool
Sonstigesas, declare, enddeclare, goto, __halt_compiler

Die genaue Menge wächst langsam zwischen Versionen — match kam in PHP 8.0, enum in PHP 8.1 und fn (Arrow-Funktionen) in PHP 7.4 — daher sind einige der obigen Einträge auf älteren Laufzeitumgebungen nicht verfügbar. Sie können jederzeit ein Wort zur Laufzeit prüfen, statt die Liste auswendig zu lernen:

<?php
var_dump(function_exists('array'));  // bool(false) — "array" is a language construct, not a function
echo PHP_VERSION, "\n";              // tells you which keywords your runtime supports

PHP-Schlüsselwörter verwenden

Schlüsselwörter verbinden sich zu den Anweisungen, aus denen jedes Programm besteht. Das folgende Beispiel verwendet eine Bedingung, eine Schleife und eine Funktionsdefinition zusammen:

<?php

$x = 7;
// Define a conditional statement
if ($x == 5) {
    echo "x is equal to 5.";
}

// Define a loop
for ($i = 0; $i < 10; $i++) {
    echo $i;
}

// Define a function
function add($a, $b)
{
    return $a + $b;
}
?>

Hier startet das Schlüsselwort if eine Bedingung, die prüft, ob $x gleich 5 ist, for erstellt eine Schleife, die von 0 bis 9 läuft, und function deklariert eine wiederverwendbare Routine, die die Summe ihrer zwei Argumente zurückgibt.

Häufige Fallstricke

  • Reservierte Wörter als Methoden- oder Konstantennamen. Seit PHP 7 sind die meisten Schlüsselwörter als Methoden-, Eigenschafts- und Klassenkonstantennamen erlaubt (z. B. $object->list() oder Foo::CONST lässt sich nicht parsen, aber Foo::PRINT schon), aber ihre Verwendung beeinträchtigt die Lesbarkeit. Bevorzugen Sie einen klareren Namen.
  • echo und print sind keine Funktionen. echo "a", "b"; funktioniert (mehrere Argumente, keine Klammern nötig); sie sind Sprachkonstrukte und können daher nicht als Callbacks übergeben werden.
  • exit und die sind identisch. Beide stoppen das Skript sofort; die ist lediglich ein Alias.
  • Verwechseln Sie and/or nicht mit &&/||. Die Wortformen haben eine niedrigere Priorität, weshalb $ok = true and false; den Wert true und nicht false zuweist. Verwenden Sie in Ausdrücken besser && und ||. Weitere Informationen zur Prioritätstabelle finden Sie unter PHP Operatoren.

Verwandte Themen

Jede Schlüsselwortgruppe hat ein eigenes Kapitel, das tiefer geht:

Fazit

PHP-Schlüsselwörter sind der feste Wortschatz der Sprache: reservierte, nicht case-sensitive Wörter, die Bedingungen, Schleifen, Klassen und Fehlerbehandlung aufbauen. Zu wissen, welche Wörter reserviert sind, schützt davor, Dinge illegal zu benennen, und zu wissen, was jedes Schlüsselwort tut, ermöglicht es, PHP flüssig zu lesen und zu schreiben. Im Zweifelsfall empfiehlt es sich, sie wie in der obigen Tabelle nach Zweck zu gruppieren, anstatt sie einzeln auswendig zu lernen.

Übung

Übung
Welche der folgenden sind reservierte Schlüsselwörter in PHP?
Welche der folgenden sind reservierte Schlüsselwörter in PHP?
Was this page helpful?