我有一个代表软件版本的数字(例如: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
}

除了支持一些文本噱头( rcbeta 后缀) version_compare 将每个部分评估为整数,因此 .14 被解释为比 .2 更新。它也适用于补丁后缀 1.0-2
使用 version_compare("2.0", "1.0", ">") 获得 bool 结果更容易。

关于PHP - 按十进制分隔划分数字序列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4836012/

10-12 12:28