主版本号 . 子版本号 [ 改动版本号 [. 编译版本号 ]]
例如:
示例1:1.0
示例2:1.1.1
示例3:1.1.2.1234
在开拓中,我们常常会碰着须要针对版本号进行判断。很多人会选择将版本号用点分隔,然后逐位进行判断的方法来做,这样会显得很繁琐。其实在PHP中有个内置方法就可以很随意马虎地完成这项事情。这便是 version_compare 方法。这个方法可以传入两个版本号进行比较判断。
先看一下这个方法的解释:
mixed version_compare ( string $version1 , string $version2 [, string $operator ] )
version1:第一个版本号
version2:第二个版本号
operator: 可以指定特定关系进行比较
如果operator不传的话,则如果 version1大于version2,返回 1,相等返回0,小于返回-1。
举个栗子:
echo version_compare('1.0' , '1.1.1');
echo version_compare('1.0' , '1.0.0');
echo version_compare('1.0' , '1.0');
echo version_compare('2.0' , '1.0.0');
返回的结果:
-1
-1
0
1
如果指定operator的话,operator可以有以下操作符:
<、 lt、<=、 le、>、 gt、>=、 ge、==、 =、eq、 !=、<> 和 ne
如果 version1 、version2 知足 operator指定的关系,则返回TRUE,否则返回FALSE。
举个栗子:
var_dump(version_compare('1.0' , '1.1.1' , '<'));
var_dump(version_compare('1.0' , '1.1.1' , '='));
var_dump(version_compare('1.0' , '1.1.1' , '>'));
返回的结果:
bool(true)
bool(false)
bool(false)
用这个方法来比较版本号是不是很大略?不过这个方法原则上是用于PHP版本号的判断,比如开拓者写一些PHP代码须要兼容不同PHP版本的时候就可以用这种判断来处理。比如:
$array = array('你好');
if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
$str = json_encode($array, JSON_UNESCAPED_UNICODE);
}else{
$str = json_encode($array);
}
echo $str;
由于json_encode 第二个参数是在PHP 5.3.0 才支持的,这样可以兼容老版本。
当然这个方法用在其他的版本号比较处理中也是可以的,只要想比较的版本号都是比较规范化的,而不是一些不走平凡路的版本号。