version_compare
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
version_compare — Vergleicht zwei Versionsnummer-Zeichenketten im PHP-Versionsformat
Beschreibung
$version1
, string $version2
, ?string $operator
= null
): int|boolversion_compare() vergleicht zwei dem PHP-Versionsformat angeglichene Versionsnummer-Zeichenketten.
Zuerst ersetzt die Funktion _
, -
und
+
durch einen Punkt .
in den
Versionsangaben und setzt vor und nach jeder Kette aus nicht-numerischen
Zeichen Punkte ein, sodass beispielsweise '4.3.2RC1' zu '4.3.2.RC.1' wird.
Anschließend werden von links nach rechts die Teile verglichen. Wenn ein
Teil spezielle Zeichen enthält, werden diese nach der folgenden Reihenfolge
behandelt: jede Zeichenkette, die nicht in dieser Liste
vorkommt
< dev
<
alpha
= a
<
beta
= b
< RC
=
rc
< #
< pl
= p
. Auf diese Weise können nicht nur Versionen
verschiedener Tiefe wie '4.1' und '4.1.2', sondern auch alle anderen
Versionen verglichen werden, die sich auf bestimmte Entwicklungsstadien von
PHP beziehen.
Parameter-Liste
-
version1
-
Die erste Versionsnummer.
-
version2
-
Die zweite Versionsnummer.
-
operator
-
Ein optionaler Parameter; mögliche Operatoren sind:
<
,lt
,<=
,le
,>
,gt
,>=
,ge
,==
,=
,eq
,!=
,<>
undne
.Dieser Parameter berücksicht die Groß- und Kleinschreibung. Die Werte sollten alle kleingeschrieben werden.
Rückgabewerte
Standardmäßig gibt version_compare()
-1
zurück, wenn die erste Version kleiner ist als die
zweite, 0
, wenn die Versionen gleich sind und
1
, wenn die zweite Version kleiner ist.
Wenn der optionale Parameter operator
übergeben
wurde, gibt die Funktion true
oder false
zurück, je nach dem, ob das
mit dem Operator definierte Verhältnis der Wahrheit entspricht oder nicht.
Beispiele
Das untenstehende Beispiel verwendet die Konstante
PHP_VERSION
, die die Version des aktuell ausführenden
PHP-Interpreters enthält.
Beispiel #1 version_compare()-Beispiele
<?php
if (version_compare(PHP_VERSION, '7.0.0') >= 0) {
echo 'Ich bin mindestens PHP 7.0.0, meine Version: ' . PHP_VERSION . "\n";
}
if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
echo 'Ich bin mindestens PHP 5.3.0, meine Version: ' . PHP_VERSION . "\n";
}
if (version_compare(PHP_VERSION, '5.0.0', '>=')) {
echo 'Ich bin mindestens PHP 5.0.0, meine Version: ' . PHP_VERSION . "\n";
}
if (version_compare(PHP_VERSION, '5.0.0', '<')) {
echo 'Ich bin noch PHP 4, meine Version: ' . PHP_VERSION . "\n";
}
?>
Anmerkungen
Hinweis:
Die Konstante
PHP_VERSION
enthält die aktuelle PHP-Version
Hinweis:
Vorveröffentlichte Versionen wie 5.3.0-dev werden als kleiner erkannt als ihre finalen Veröffentlichungen (wie 5.3.0).
Hinweis:
Bei besonderen Versionszeichenketten wie
alpha
undbeta
wird zwischen Groß-/Kleinschreibung unterschieden. Versionszeichenketten aus beliebigen Quellen, die nicht den PHP-Standard einhalten, müssen bei Bedarf mit strtolower() in Kleinschreibung umgewandelt werden, bevor version_compare() aufgerufen wird.
Siehe auch
- phpversion() - Liefert die aktuelle PHP-Version
- php_uname() - Returns information about the operating system PHP is running on
- function_exists() - Falls die angegebene Funktion definiert ist, wird true zurück gegeben