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.