(PHP 4 >= 4.1.0, PHP 5)
version_compare — Compara dos números de versiones estandarizados de PHP
version_compare() compara dos números de versiones estandarizados de PHP. Puede ser de utilidad en caso de escribir programas que tan solo funcionen en determinadas versiones de PHP.
Esta función, en primer lugar reemplaza los _, - y + por puntos . y las cadenas de texto de versiones y añade puntos . antes y después de cualquier código no numérico, de manera que '4.3.2RC1' sería '4.3.2.RC.1'. Después, trocea el resultado tal como haría la función explode('.', $ver). Posteriormente compara cada una de las partes, de izquierda a derecha. Si alguna parte contuviera un texto especial de versión, se manejarían con el siguiente orden: cualquier texto que no se encuentre en esta lista < dev < alpha = a < beta = b < RC = rc < # < pl = p. De esta forma, no solo se pueden comparar versiones con diferentes niveles, como '4.1' y '4.1.2', sino que también se pueden comparar versiones específicas de PHP que contengan el estado de desarrollo en que se encuentran.
version1
Primer número de versión.
version2
Segundo número de versión.
operator
Si se especificara el argumento opcional operator
,
se podrían comprobar determinadas realciones. Los operadores
posibles son: <,
lt, <=,
le, >,
gt, >=,
ge, ==,
=, eq,
!=, <>,
ne respectivamente.
Este parámetro es sensible a mayúsculas, por lo que debe introducirse 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.
Al usar el argumento opcional operator
, la
función de volverá TRUE
si se cumpliera la relación especificada por
el operador, o FALSE
en caso contrario.
Los siguientes ejemplos usan la constante PHP_VERSION
,
ya que esta contiene el valor de la versión de PHP con que se está ejecutando
el código.
Ejemplo #1 Ejemplos de version_compare()
<?php
if (version_compare(PHP_VERSION, '6.0.0') >= 0) {
echo 'Soy al menos la versión 6.0.0 de PHP, mi versión: ' . PHP_VERSION . "\n";
}
if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
echo 'Soy 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 'Estoy usando la versión 5 de PHP, mi versión: ' . PHP_VERSION . "\n";
}
if (version_compare(PHP_VERSION, '5.0.0', '<')) {
echo 'Estoy usando la versión 4 de PHP, mi versión: ' . PHP_VERSION . "\n";
}
?>
Nota:
La constante
PHP_VERSION
almacena la versión de PHP en uso.
Nota:
Tenga presente que las versiones preeliminares, como por ejemplo 5.3.0-dev, se las considera inferiroes a la versión final (como por ejemplo 5.3.0).
Nota:
Las cadenas de versiones especiales como alpha y beta son sensibles a mayúsculas/minúsculas. Las cadenas de versiones desde fuentes arbitrarias que no se adhieren al estándar de PHP podrían necesitar ser convertidas a minúsculas mediante strtolower() antes de llamar a version_compare().