版本号 . 子版本号 [ 改动版本号 [. 编译版本号 ]]

例如:

示例1:1.0

php比较符若何在PHP中实现比拟版本号 HTML

示例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 才支持的,这样可以兼容老版本。

当然这个方法用在其他的版本号比较处理中也是可以的,只要想比较的版本号都是比较规范化的,而不是一些不走平凡路的版本号。