Signatur
Beschreibung
phpversion() liefert die Versionsnummer des laufenden PHP-Interpreters, z. B. "8.2.10". Wird ein Erweiterungsname als Parameter übergeben, gibt die Funktion stattdessen die Version dieser Erweiterung zurück – sofern sie geladen ist und Versionsinformationen bereitstellt.
Die Funktion ist besonders nützlich, um zur Laufzeit auf PHP-Versionsabhängigkeiten zu prüfen oder Debug-Ausgaben mit Versionsangaben anzureichern. Für programmatische Vergleiche empfiehlt sich die Kombination mit version_compare(), um semantische Versionsnummern korrekt zu vergleichen.
Die Konstante PHP_VERSION enthält dieselbe Information wie ein Aufruf ohne Argument und ist in Kontexten, in denen kein Funktionsaufruf möglich ist (z. B. Attribut-Argumente), vorzuziehen. Darüber hinaus stehen PHP_MAJOR_VERSION, PHP_MINOR_VERSION und PHP_RELEASE_VERSION für einzelne Versionsbestandteile bereit.
Gibt die Erweiterung keine Versionsinformation bekannt oder ist sie nicht geladen, liefert phpversion() den Wert false.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $extension | string | "" | Optionaler Name einer PHP-Erweiterung (z. B. "curl", "openssl"). Wird kein Argument übergeben oder eine leere Zeichenkette, gibt die Funktion die PHP-Kernversion zurück. |
Rückgabewert
PHP_VERSION). Bei Angabe eines Erweiterungsnamens wird die Version dieser Erweiterung zurückgegeben. Ist die Erweiterung nicht geladen oder stellt sie keine Version bereit, wird false zurückgegeben.Beispiele
PHP-Kernversion ermitteln und ausgeben
<?php
$version = phpversion();
echo "Aktuelle PHP-Version: " . $version . PHP_EOL;
// Mindestversion sicherstellen
if (version_compare($version, '8.1.0', '<')) {
die('Dieses Skript benötigt mindestens PHP 8.1.');
}
echo "Versionsanforderung erfüllt." . PHP_EOL;
Version einer installierten Erweiterung abfragen
<?php
$extensions = ['curl', 'openssl', 'mbstring', 'imagick'];
foreach ($extensions as $ext) {
$v = phpversion($ext);
if ($v !== false) {
echo sprintf("%-12s => %s\n", $ext, $v);
} else {
echo sprintf("%-12s => nicht geladen oder keine Version\n", $ext);
}
}
// Wichtig · Fallstricke
Die Konstante PHP_VERSION ist für einfache Vergleiche oft die bessere Wahl, da kein Funktionsaufruf-Overhead entsteht. Für verlässliche Versionsvergleiche sollte stets version_compare() verwendet werden, da einfache String-Vergleiche bei Versionsnummern zu falschen Ergebnissen führen können (z. B. "10.0" < "9.0" bei lexikalischem Vergleich).
Gibt phpversion('erweiterung') den Wert false zurück, bedeutet das nicht zwingend, dass die Erweiterung fehlt – sie könnte schlicht keine Versionsinformation registrieren. Mit extension_loaded() lässt sich die Verfügbarkeit einer Erweiterung zuverlässiger prüfen.