我有一个代表软件版本的数字(例如:1.2.0.14),我需要将被小数除的每个数字分开,并将每个数字存储为单独的变量。
例子:
原始编号为 1.2.0.14
$current_version_major = 1;
$current_version_minor = 2;
$current_version_revision = 0;
$current_version_build = 14;
执行此操作的最有效方法是什么?
最佳答案
如果您实际上不需要单独存储版本字段而只想比较两个版本,那么 version_compare
有时是一个不错的选择:
switch (version_compare("1.2.0.14", "1.2.0.22")) {
case -1: // second version number is higher
case 0: // both identical
case +1: // second version is older
}
除了支持一些文本噱头(
rc
和 beta
后缀) version_compare 将每个部分评估为整数,因此 .14
被解释为比 .2
更新。它也适用于补丁后缀 1.0-2
使用
version_compare("2.0", "1.0", ">")
获得 bool 结果更容易。关于PHP - 按十进制分隔划分数字序列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4836012/