version_compare('5.2', '5.2.0'); // returns -1, as if the second parameter is greater!
Run Code Online (Sandbox Code Playgroud)
是不是5.2和5.2.0相等?(不是5.2和5.2.0.0也相等)?
这是一个经过调整的比较函数,它通过修剪零版本后缀组件(即5.2.0- >)来表现5.2.
var_dump(my_version_compare('5.1', '5.1.0')); // 0 - equal
var_dump(my_version_compare('5.1', '5.1.0.0')); // 0 - equal
var_dump(my_version_compare('5.1.0', '5.1.0.0-alpha')); // 1 - 5.1.0.0-alpha is lower
var_dump(my_version_compare('5.1.0-beta', '5.1.0.0')); // -1 - 5.1.0-beta is lower
function my_version_compare($ver1, $ver2, $operator = null)
{
$p = '#(\.0+)+($|-)#';
$ver1 = preg_replace($p, '', $ver1);
$ver2 = preg_replace($p, '', $ver2);
return isset($operator) ?
version_compare($ver1, $ver2, $operator) :
version_compare($ver1, $ver2);
}
Run Code Online (Sandbox Code Playgroud)