PHP比较两个版本的方法

来源:互联网 发布:民谣吉他知乎 编辑:程序博客网 时间:2024/05/23 22:55
PHP比较两个版本的方法 写app接口经常要用到  PHP接口的版本和app里面的版本做比较check($version)){            list($major, $minor, $sub) = explode('.', $version);            $integer_version = $major*10000 + $minor*100 + $sub;            return intval($integer_version);        }else{            throw new ErrorException('version Validate Error');        }    }    /**     * 将数字转为版本     * @param  Int     $version_code 版本的数字表示     * @return String     */    public function integer_to_version($version_code){        if(is_numeric($version_code) && $version_code>=10000){            $version = array();            $version[0] = (int)($version_code/10000);            $version[1] = (int)($version_code%10000/100);            $version[2] = $version_code%100;            return implode('.', $version);        }else{            throw new ErrorException('version code Validate Error');        }    }    /**     * 检查版本格式是否正确     * @param  String  $version 版本     * @return Boolean     */    public function check($version){        $ret = preg_match('/^[0-9]{1,3}\.[0-9]{1,2}\.[0-9]{1,2}$/', $version);        return $ret? true : false;    }    /**     * 比较两个版本的值     * @param  String  $version1  版本1     * @param  String  $version2  版本2     * @return Int                -1:1<2, 0:相等, 1:1>2     */    public function compare($version1, $version2){        if($this->check($version1) && $this->check($version2)){            $version1_code = $this->version_to_integer($version1);            $version2_code = $this->version_to_integer($version2);            if($version1_code>$version2_code){                return 1;            }elseif($version1_code<$version2_code){                return -1;            }else{                return 0;            }        }else{            throw new ErrorException('version1 or version2 Validate Error');        }    }} // class end$version = '2.7.1';$obj = new Version();// 比较两个版本$version1 = '2.9.9';$version2 = '10.0.1';$result = $obj->compare($version1, $version2);echo $result; // -1// 比较两个版本$version1 = '2.9.9';$version2 = '1';$result = $obj->compare($version1, $version2);echo $result; // 1?>

查看原文:http://newmiracle.cn/?p=1828
原创粉丝点击