(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
version_compare — 對比兩個(gè)「PHP 規范化」的版本數字字符串
version_compare() 用于對比兩個(gè)「PHP 規范化」的版本數字字符串。
此函數首先在版本字符串里用一個(gè)點(diǎn) . 替換 _、- 和 +,也會(huì )在任意非數字前后插入一個(gè)點(diǎn) .,這樣,類(lèi)似 '4.3.2RC1' 將會(huì )變成 '4.3.2.RC.1'。
接下來(lái)它會(huì )分割結果,
然后它會(huì )從左往右對比各個(gè)部分。
如果某部分包含了特定的版本字符串,將會(huì )用以下順序處理:
列表中未找到的任意字符串 <
dev < alpha =
a < beta =
b < RC =
rc < # <
pl = p。
這種方式不僅能夠對比類(lèi)似 '4.1' 和 '4.1.2' 那種不同的版本級別,同時(shí)也可以指定對比任何包含 PHP 開(kāi)發(fā)狀態(tài)的版本。
version1第一個(gè)版本數。
version2第二個(gè)版本數。
operator
如果你指定了可選的第三個(gè)參數 operator,你可以測試兩者的特定關(guān)系。
可以的操作符分別是:<、
lt、<=、
le、>、
gt、>=、
ge、==、
=、eq、
!=、<> 和
ne。
此參數區分大小寫(xiě),它的值應該是小寫(xiě)的。
默認情況下,在第一個(gè)版本低于第二個(gè)時(shí),version_compare() 返回 -1;如果兩者相等,返回 0;第二個(gè)版本更低時(shí)則返回 1。
當使用了可選參數 operator 時(shí),如果關(guān)系是操作符所指定的那個(gè),函數將返回 true,否則返回 false。
下例使用了 PHP_VERSION 常量,因為它執行的代碼包含了 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常量包含了當前 PHP 的版本。
注意:
注意,類(lèi)似 5.3.0-dev 的預發(fā)行版本,被認為是低于它們的最終發(fā)行版本(就像 5.3.0)。
注意:
指定類(lèi)似
alpha、beta的版本字符串是大小寫(xiě)敏感的。 版本字符串的來(lái)源若不遵循 PHP 標準,可能需要在調用 version_compare() 之前先用 strtolower() 轉成小寫(xiě)。