version_compare

(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)

version_compare對(duì)比兩個(gè)「PHP 規(guī)范化」的版本數(shù)字字符串

說(shuō)明

version_compare(string $version1, string $version2, string $operator = ?): mixed

version_compare() 用于對(duì)比兩個(gè)「PHP 規(guī)范化」的版本數(shù)字字符串。

此函數(shù)首先在版本字符串里用一個(gè)點(diǎn) . 替換 _、-+,也會(huì)在任意非數(shù)字前后插入一個(gè)點(diǎn) .,這樣,類似 '4.3.2RC1' 將會(huì)變成 '4.3.2.RC.1'。 接下來(lái)它會(huì)分割結(jié)果, 然后它會(huì)從左往右對(duì)比各個(gè)部分。 如果某部分包含了特定的版本字符串,將會(huì)用以下順序處理: 列表中未找到的任意字符串 < dev < alpha = a < beta = b < RC = rc < # < pl = p。 這種方式不僅能夠?qū)Ρ阮愃?'4.1' 和 '4.1.2' 那種不同的版本級(jí)別,同時(shí)也可以指定對(duì)比任何包含 PHP 開發(fā)狀態(tài)的版本。

參數(shù)

version1

第一個(gè)版本數(shù)。

version2

第二個(gè)版本數(shù)。

operator

如果你指定了可選的第三個(gè)參數(shù) operator,你可以測(cè)試兩者的特定關(guān)系。 可以的操作符分別是:<、 lt、<=le、>gt、>=、 ge==、 =eq、 !=<>ne。

此參數(shù)區(qū)分大小寫,它的值應(yīng)該是小寫的。

返回值

默認(rèn)情況下,在第一個(gè)版本低于第二個(gè)時(shí),version_compare() 返回 -1;如果兩者相等,返回 0;第二個(gè)版本更低時(shí)則返回 1。

當(dāng)使用了可選參數(shù) operator 時(shí),如果關(guān)系是操作符所指定的那個(gè),函數(shù)將返回 true,否則返回 false。

范例

下例使用了 PHP_VERSION 常量,因?yàn)樗鼒?zhí)行的代碼包含了 PHP 版本的值。

示例 #1 version_compare() examples

<?php
if (version_compare(PHP_VERSION'7.0.0') >= 0) {
    echo 
'I am at least PHP version 7.0.0, my version: ' PHP_VERSION "\n";
}

if (
version_compare(PHP_VERSION'5.3.0') >= 0) {
    echo 
'I am at least PHP version 5.3.0, my version: ' PHP_VERSION "\n";
}

if (
version_compare(PHP_VERSION'5.0.0''>=')) {
    echo 
'I am at least PHP version 5.0.0, my version: ' PHP_VERSION "\n";
}

if (
version_compare(PHP_VERSION'5.0.0''<')) {
    echo 
'I am still PHP 4, my version: ' PHP_VERSION "\n";
}
?>

注釋

注意:

PHP_VERSION 常量包含了當(dāng)前 PHP 的版本。

注意:

注意,類似 5.3.0-dev 的預(yù)發(fā)行版本,被認(rèn)為是低于它們的最終發(fā)行版本(就像 5.3.0)。

注意:

指定類似 alpha、beta 的版本字符串是大小寫敏感的。 版本字符串的來(lái)源若不遵循 PHP 標(biāo)準(zhǔn),可能需要在調(diào)用 version_compare() 之前先用 strtolower() 轉(zhuǎn)成小寫。

參見

  • phpversion() - 獲取當(dāng)前的PHP版本
  • php_uname() - 返回運(yùn)行 PHP 的系統(tǒng)的有關(guān)信息
  • function_exists() - 如果給定的函數(shù)已經(jīng)被定義就返回 true