php

version_compare 使用

2023-09-20

version_compare — 对比两个「PHP 规范化」的版本数字字符串

说明

mixed version_compare ( string $version1 , string $version2 [, string $operator ] )

version_compare() 用于对比两个「PHP 规范化」的版本数字字符串。 这对于编写仅能兼容某些版本 PHP 的程序很有帮助。


此函数首先在版本字符串里用一个点 . 替换 _、- 和 +,也会在任意非数字前后插入一个点 .,这样,类似 '4.3.2RC1' 将会变成 '4.3.2.RC.1'。 接下来它会分割结果,就像你使用 explode('.', $ver) 那样。 然后它会从左往右对比各个部分。 如果某部分包含了特定的版本字符串,将会用以下顺序处理: 列表中未找到的任意字符串 < dev < alpha = a < beta = b < RC = rc < # < pl = p。 这种方式不仅能够对比类似 '4.1' 和 '4.1.2' 那种不同的版本级别,同时也可以指定对比任何包含 PHP 开发状态的版本。


参数  

version1  第一个版本数。

version2  第二个版本数。


operator

如果你指定了可选的第三个参数 operator,你可以测试两者的特定关系。 可以的操作符分别是:<、 lt、<=、 le、>、 gt、>=、 ge、==、 =、eq、 !=、<> 和 ne。

此参数区分大小写,所以它的值应该是小写的。


返回值

默认情况下,在第一个版本低于第二个时, version_compare() 返回 -1;如果两者相等,返回 0;第二个版本更低时则返回 1。

当使用了可选参数 operator 时,如果关系是操作符所指定的那个,函数将返回 TRUE ,否则返回 FALSE 。


范例

下例使用了 PHP_VERSION 常量,因为它执行的代码包含了 PHP 版本的值。

version_compare() 举例

<?php

if ( version_compare ( PHP_VERSION ,  '6.0.0' ) >=  0 ) {

    echo  'I am at least PHP version 6.0.0, my version: '  .  PHP_VERSION  .  "\n" ;

}


if ( version_compare ( PHP_VERSION ,  '5.3.0' ) >=  0 ) {

    echo  'I am at least PHP version 5.3.0, my version: '  .  PHP_VERSION  .  "\n" ;

}


if ( version_compare ( PHP_VERSION ,  '5.0.0' ,  '>=' )) {

    echo  'I am using PHP 5, my version: '  .  PHP_VERSION  .  "\n" ;

}


if ( version_compare ( PHP_VERSION ,  '5.0.0' ,  '<' )) {

    echo  'I am using PHP 4, my version: '  .  PHP_VERSION  .  "\n" ;

}

?>


注释

PHP_VERSION       常量包含了当前 PHP 的版本。

phpversion()          获取当前的PHP版本

php_uname()         返回运行 PHP 的系统的有关信息

function_exists()    如果给定的函数已经被定义就返回 TRUE