《如何在PHP中实现比较版本号》要点:
本文介绍了如何在PHP中实现比较版本号,希望对您有用。如果有疑问,可以联系我们。
一般来说各种软件、SDK、框架都会有自己的版本号,版本号的主要格式如下:
主版本号 . 子版本号 [ 修正版本号 [. 编译版本号 ]]
例如:
示例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 才支持的,这样可以兼容老版本.
当然这个办法用在其他的版本号比较处理中也是可以的,只要想比较的版本号都是比较规范化的,而不是一些不走寻常路的版本号.
欢迎参与《如何在PHP中实现比较版本号》讨论,分享您的想法,维易PHP学院为您提供专业教程。
转载请注明本页网址:
http://www.vephp.com/jiaocheng/9669.html