PHP Konstanten und Superglobals
Erste Schritte: PHP Konstanten und Superglobals
In PHP spielen Konstanten eine wichtige Rolle, wenn du Werte definieren möchtest,
die sich während der Laufzeit deines Skripts nicht ändern sollen.
Ebenso sind Superglobals unverzichtbar, um einfach auf Daten wie Formulareingaben,
Serverinformationen oder Session-Variablen zuzugreifen.
In diesem Tutorial erfährst du, wie du Konstanten definierst und verwendest,
und welche Superglobals PHP dir anbietet.
1. Konstanten
Konstanten ähneln Variablen, mit dem Unterschied, dass ihr Wert nach der Definition nicht
mehr verändert werden kann. Sie eignen sich z. B. für Konfigurationswerte (Datenbankname, API-Keys etc.).
In PHP werden Konstanten meist über die Funktion define() oder ab PHP 7 über const im Klassenkontext angelegt.
1.1 define()
<?php define("MEINE_KONSTANTE", 42); define("APP_NAME", "MeinPortal"); echo MEINE_KONSTANTE; // 42 echo "<br>"; echo APP_NAME; // MeinPortal ?>
- MEINE_KONSTANTE ist jetzt überall erreichbar und der Wert ist fix auf 42.
- Konstanten werden üblicherweise in GROSSSCHREIBUNG definiert, um sie von Variablen zu unterscheiden.
-
define()
gibt bei erfolgreicher Definition
true
zurück, bei Fehlern
false
.
1.2 const (ab PHP 5.3/7+ vermehrt genutzt)
Innerhalb einer Klasse oder im globalen Namespace kannst du auch das Schlüsselwort const verwenden:
<?php const VERSION = "1.0.0"; class Config { const API_URL = "https://api.meineseite.de"; } echo VERSION; // 1.0.0 echo Config::API_URL; // https://api.meineseite.de ?>
Außerhalb einer Klasse kannst du const nur verwenden, wenn du den Code nicht
in einer Funktions- oder Kontrollstruktur (if, switch etc.) einbettest.
Für die meisten Anwendungsfälle ist define() völlig ausreichend.
2. Superglobals
PHP stellt mehrere vordefinierte Arrays zur Verfügung,
die sogenannte Superglobals sind.
Sie stehen in jedem Gültigkeitsbereich (Scope) automatisch zur Verfügung
und beginnen jeweils mit einem Unterstrich.
2.1 $_GET
Enthält alle Daten, die per HTTP GET (z. B. URL-Parameter) übertragen werden:
// URL: http://example.com?name=Lisa&alter=23 <?php // $_GET['name'] => "Lisa" // $_GET['alter'] => "23" echo "Name: " . $_GET['name']; echo "Alter: " . $_GET['alter']; ?>
2.2 $_POST
Beinhaltet alle Daten eines Formulars, das per POST Methode abgesendet wird:
<!-- Beispiel-Formular --> <form method="POST" action="verarbeiten.php"> <input type="text" name="username"> <input type="password" name="passwort"> <button type="submit">Login</button> </form>
<!-- verarbeiten.php --> <?php // $_POST['username'] und $_POST['passwort'] echo "Benutzer: " . $_POST['username']; ?>
2.3 $_REQUEST
In $_REQUEST werden standardmäßig GET, POST und COOKIE-Werte zusammengefasst.
Ob das in allen Situationen sinnvoll ist, musst du abwägen –
manchmal kann diese Vermischung unübersichtlich sein.
2.4 $_SERVER
Enthält Server- und Ausführungsumgebungsinformationen, z. B. das Skriptverzeichnis, die URL, den Hostnamen etc.:
<?php echo $_SERVER['PHP_SELF']; // z. B. /verarbeiten.php echo $_SERVER['SERVER_NAME']; // Domainname oder IP echo $_SERVER['REQUEST_METHOD']; // GET oder POST ?>
2.5 $_SESSION
Wenn du Sessions nutzt, kannst du damit Benutzerdaten über mehrere Seitenaufrufe hinweg speichern.
Voraussetzung: session_start() am Anfang des Skripts.
<?php session_start(); $_SESSION['user'] = "Lisa"; echo $_SESSION['user']; // Lisa ?>
2.6 $_COOKIE
Enthält alle Cookie-Daten, die vom Browser gesendet wurden.
Cookies sind kleine Informationen, die auf dem Rechner des Besuchers gespeichert werden.
<?php echo $_COOKIE['meincookie']; // Gibt den Wert von meincookie aus, falls gesetzt ?>
3. Tipps im Umgang mit Superglobals
- Sicherheit: Prüfe und validiere alle Daten aus $_GET, $_POST, $_REQUEST
gründlich, da der Nutzer sie selbst manipulieren kann. - Existenz prüfen: Nutze isset(), bevor du auf einen Index zugreifst,
um Warnungen zu vermeiden:if (isset($_GET['name'])) { $name = $_GET['name']; }
- Vorsicht mit $_REQUEST: Da dort POST, GET und COOKIE vermischt werden,
kann das für Konflikte sorgen, wenn mehrere Felder denselben Namen nutzen. - $_SERVER[‚HTTP_HOST‘] vs. $_SERVER[‚SERVER_NAME‘]:
Achte auf korrekten Gebrauch, da sich manche Werte je nach Serverkonfiguration unterscheiden.
Fazit
Konstanten (via define() oder const) sind perfekt,
wenn du Werte einmalig festlegen und nicht mehr ändern willst – etwa für Konfigurationen wie „API_URL“.
Superglobals wie $_GET, $_POST, $_SESSION oder $_SERVER
ermöglichen dir, schnell auf Benutzereingaben, Sessions oder Server-Infos zuzugreifen,
ohne Variablen explizit zu übergeben.
Gemeinsam bilden sie einen wichtigen Bestandteil in jeder PHP-Anwendung:
Konstanten für feste Einstellungen, Superglobals für den dynamischen Datenaustausch.
Lerne den richtigen Umgang damit, und du hast einen stabilen Grundbaustein für saubere,
wartbare PHP-Projekte.