note 30828 deleted from function.version-compare by didou

From: Date: Thu, 29 May 2003 21:49:57 +0000
Subject: note 30828 deleted from function.version-compare by didou
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-49341@lists.php.net to get a copy of this message
Note Submitter: admin@digimon-wranglers.com ---- 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; } }

« previous php.notes (#49341) next »