(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
version_compare — Comparar dos strings de versión en el formato de versiones de PHP
version_compare() compara dos versiones de PHP estandarizadas.
version_compare() reemplaza inicialmente
_
, -
y +
por un
punto (.
) en los strings de versión y también inserta
puntos antes y después de cualquier carácter no numérico para que, por ejemplo,
'4.3.5RC1' se convierta en '4.3.5.RC.1'. Luego, compara los fragmentos
de izquierda a derecha. Si una parte contiene caracteres alfabéticos,
estos son gestionados en el siguiente orden:
any string not found in this list
<
dev
< alpha
=
a
< beta
=
b
< RC
=
rc
< #
<
pl
= p
. De esta manera, es posible
comparar no solo versiones de diferentes niveles,
como '4.1' y '4.1.2', sino también versiones
de desarrollo de PHP, en cualquier etapa.
version1
Primer número de versión.
version2
Segundo número de versión.
operator
Un operador opcional. Los operadores posibles son:
<
, lt
,
<=
, le
, >
,
gt
, >=
, ge
,
==
, =
, eq
,
!=
, <>
, ne
respectivamente.
Este parámetro es sensible a mayúsculas/minúsculas, por lo que los valores deben estar en minúsculas.
Por omisión, version_compare() devuelve
-1
si la primera versión es inferior
a la segunda, 0
si son iguales, y
1
si la segunda es inferior a la primera.
Cuando se utiliza el parámetro opcional operator
,
la función devuelve true
si la relación es la especificada por el operador,
false
en caso contrario.
Los ejemplos siguientes utilizan la constante
PHP_VERSION
, sabiendo que contiene el valor
de la versión de PHP utilizada para ejecutar el código.
Ejemplo #1 Ejemplo con version_compare()
<?php
if (version_compare(PHP_VERSION, '7.0.0') >= 0) {
echo 'Tengo al menos la versión 7.0.0 de PHP; mi versión: ' . PHP_VERSION . "\n";
}
if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
echo 'Tengo al menos la versión 5.3.0 de PHP; mi versión: ' . PHP_VERSION . "\n";
}
if (version_compare(PHP_VERSION, '5.0.0', '>=')) {
echo 'Tengo al menos la versión 5.0.0 de PHP; mi versión: ' . PHP_VERSION . "\n";
}
if (version_compare(PHP_VERSION, '5.0.0', '<')) {
echo 'Aún utilizo PHP 4; mi versión: ' . PHP_VERSION . "\n";
}
?>
Nota:
La constante
PHP_VERSION
contiene la versión actual de PHP.
Nota:
Tenga en cuenta que las versiones intermedias, como
5.3.0-dev
, son consideradas inferiores a sus versiones finales (como 5.3.0).
Nota:
Los strings especiales de versión como
alpha
ybeta
son sensibles a mayúsculas/minúsculas. Los strings de versión provenientes de fuentes arbitrarias que no siguen el estándar de PHP deben ser convertidos a minúsculas utilizando la función strtolower() antes de llamar a la función version_compare().