version_compare
Vergleicht zwei Versionsnummern im PHP-Stil
Beschreibung
mixed version_compare
( string $version1
, string $version2
[, string $operator
] )
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
-
Erste Versionsnummer.
-
version2
-
Zweite Versionsnummer.
-
operator
-
Wenn der freiwillige Parameter operator
angegeben ist, wird auf ein bestimmtes Verhältnis geprüft.
Mögliche Operatoren sind: <,
lt, <=,
le, >,
gt, >=,
ge, ==,
=, eq,
!=, <>,
ne.
Dieser Parameter berücksicht 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 benutzt 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, '6.0.0') >= 0) {
echo 'Ich bin mindestens PHP 6.0.0, und zwar: ' . PHP_VERSION . "\n";
}
if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
echo 'Ich bin mindestens PHP 5.3.0, nämlich: ' . PHP_VERSION . "\n";
}
if (version_compare(PHP_VERSION, '5.0.0', '>=')) {
echo 'Ich bin PHP 5. Meine Versionsnummer lautet: ' . PHP_VERSION . "\n";
}
if (version_compare(PHP_VERSION, '5.0.0', '<')) {
echo 'Ich bin PHP 4. Meine Versionsnummer lautet: ' . 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 und
beta wird zwischen Groß-/Kleinschreibung unterschieden.
Versionszeichenketten aus beliebigen Quellen, die nicht den PHP-Standard
einhalten, müssen bei Bedarf mit strtolower in
Kleinschreibung gewandelt werden bevor version_compare
aufgerufen wird.
Siehe auch
- phpversion
- php_uname
- function_exists