(PHP 4 >= 4.1.0, PHP 5)
version_compare — 對比兩個「PHP 規范化」的版本數字字符串
說明
mixed version_compare ( string$version1
, string $version2
[, string $operator
] )
version_compare() 用于對比兩個「PHP 規范化」的版本數字字符串。 這對于編寫僅能兼容某些版本 PHP 的程序很有幫助。
此函數首先在版本字符串里用一個點 . 替換 _、- 和 +,也會在任意非數字前后插入一個點 .,這樣,類似 '4.3.2RC1' 將會變成 '4.3.2.RC.1'。 接下來它會分割結果,就像你使用 explode('.', $ver) 那樣。 然后它會從左往右對比各個部分。 如果某部分包含了特定的版本字符串,將會用以下順序處理: 列表中未找到的任意字符串 < dev < alpha = a < beta = b < RC = rc < # < pl = p。 這種方式不僅能夠對比類似 '4.1' 和 '4.1.2' 那種不同的版本級別,同時也可以指定對比任何包含 PHP 開發狀態的版本。
參數
version1
第一個版本數。
version2
第二個版本數。
operator
如果你指定了可選的第三個參數 operator
,你可以測試兩者的特定關系。
可以的操作符分別是:<、
lt、<=、
le、>、
gt、>=、
ge、==、
=、eq、
!=、<> 和
ne。
此參數區分大小寫,所以它的值應該是小寫的。
返回值
默認情況下,在第一個版本低于第二個時,version_compare() 返回 -1;如果兩者相等,返回 0;第二個版本更低時則返回 1。
當使用了可選參數 operator
時,如果關系是操作符所指定的那個,函數將返回 TRUE
,否則返回 FALSE
。
范例
下例使用了 PHP_VERSION
常量,因為它執行的代碼包含了 PHP 版本的值。
Example #1 version_compare() examples
<?php
if (version_compare(PHP_VERSION, '6.0.0') >= 0) {
echo 'I am at least PHP version 6.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 using PHP 5, my version: ' . PHP_VERSION . "n";
}
if (version_compare(PHP_VERSION, '5.0.0', '<')) {
echo 'I am using PHP 4, my version: ' . PHP_VERSION . "n";
}
?>
注釋
Note:
PHP_VERSION
常量包含了當前 PHP 的版本。
Note:
注意,類似 5.3.0-dev 的預發行版本,被認為是低于它們的最終發行版本(就像 5.3.0)。
Note:
指定類似 alpha、beta 的版本字符串是大小寫敏感的。 版本字符串的來源若不遵循 PHP 標準,可能需要在調用 version_compare() 之前先用 strtolower() 轉成小寫。
參見
phpversion() - 獲取當前的PHP版本 php_uname() - 返回運行 PHP 的系統的有關信息 function_exists() - 如果給定的函數已經被定義就返回 TRUE