php 实现版本号对比,如何在PHP中实现比较版本号
发布日期:2021-06-24 13:24:30 浏览次数:4 分类:技术文章

本文共 1302 字,大约阅读时间需要 4 分钟。

一般来说各种软件、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可以有以下操作符:

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

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

转载地址:https://blog.csdn.net/weixin_33137081/article/details/115173284 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:php sql 给数据库追加内容,php如何向数据库中的某串数据后追加内容【急】
下一篇:php 删除字节,php – 删除无效/不完整的多字节字符

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年03月30日 06时29分22秒