note 30828 added to function.version-compare

From: Date: Mon, 31 Mar 2003 19:43:28 +0000
Subject: note 30828 added to function.version-compare
Groups: php.notes 
Request: Send a blank email to php-notes+get-46021@lists.php.net to get a copy of this message
If you want a version of version_compare that works on earler versions (most likely not PHP3, I don't bother testing such old versions anymore) then try this, unlike the above examples it takes the same params as the official version and should return the same results. if (!function_exists('version_compare')) { function version_compare($ver1, $ver2, $op='noop') { $v1 = explode('.', $ver1); $v2 = explode('.', $ver2); $ret = 0; for ($i = 0; $i <= 2; $i++) { if ($v1[$i] < $v2[$i]) { $ret = -1; break; } if ($v1[$i] > $v2[$i]) { $ret = 1; break; } } switch ($op) { default: case 'noop': { break; } case '<': case 'lt': { if ($ret == -1) { $ret = 1; } else { $ret = 0; } break; } case '<=': case 'le': { if ($ret == -1 || $ret == 0) { $ret = 1; } else { $ret = 0; } break; } case '>': case 'gt': { if ($ret == 1) { $ret = 1; } else { $ret = 0; } break; } case '>=': case 'ge': { if ($ret == 0 || $ret == 1) { $ret = 1; } else { $ret = 0; } break; } case '==': case '=': case 'eq': { if ($ret == 0) { $ret = 1; } else { $ret = 0; } break; } case '!=': case '<>': case 'ne': { if ($ret == -1 || $ret == 1) { $ret = 1; } else { $ret = 0; } break; } } return $ret; } } -- http://www.php.net/manual/en/function.version-compare.php http://master.php.net/manage/user-notes.php?action=edit+30828 http://master.php.net/manage/user-notes.php?action=delete+30828 http://master.php.net/manage/user-notes.php?action=reject+30828

« previous php.notes (#46021) next »