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 nameZwei praktische Regeln ergeben sich daraus:
- Schlüsselwörter sind nicht case-sensitiv.
if,IFundIfbedeuten alle dasselbe, daher funktioniertECHO "hi";problemlos. (Variablennamen und selbst definierte Namen sind hingegen case-sensitiv.) - Konstanten wie
true,falseundnullsind 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.
| Kategorie | Schlüsselwörter |
|---|---|
| Bedingungen | if, else, elseif, endif, switch, case, default, endswitch, match |
| Schleifen | for, endfor, foreach, endforeach, while, endwhile, do, break, continue |
| Funktionen & Generatoren | function, fn, return, yield, use, static, global |
| Klassen & OOP | class, interface, trait, enum, extends, implements, new, clone, abstract, final, public, protected, private, const, var, instanceof, insteadof |
| Namespaces & Autoloading | namespace, use, include, include_once, require, require_once |
| Fehlerbehandlung | try, catch, finally, throw |
| Sprachkonstrukte | echo, print, array, list, isset, unset, empty, die, exit, eval |
| Logische Operatoren | and, or, xor |
| Typen & Werte | true, false, null, callable, int, float, string, bool |
| Sonstiges | as, 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 supportsPHP-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()oderFoo::CONSTlässt sich nicht parsen, aberFoo::PRINTschon), aber ihre Verwendung beeinträchtigt die Lesbarkeit. Bevorzugen Sie einen klareren Namen. echoundprintsind keine Funktionen.echo "a", "b";funktioniert (mehrere Argumente, keine Klammern nötig); sie sind Sprachkonstrukte und können daher nicht als Callbacks übergeben werden.exitunddiesind identisch. Beide stoppen das Skript sofort;dieist lediglich ein Alias.- Verwechseln Sie
and/ornicht mit&&/||. Die Wortformen haben eine niedrigere Priorität, weshalb$ok = true and false;den Werttrueund nichtfalsezuweist. 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:
- PHP-Variablen und PHP-Datentypen — wie
var,arrayund die Typ-Schlüsselwörter funktionieren. - PHP If...Else...Elseif und PHP-Schleifen — die Kontrollfluss-Schlüsselwörter.
- PHP-Funktionen —
function,return,useund Gültigkeitsbereiche. - PHP-Klassen und -Objekte — die OOP-Schlüsselwörter.
- PHP-Konstanten und PHP-Namespaces.
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.