php中比較php版本,一般用version_compare()函數。
用途:比較兩個「PHP標準化」版本號字串。
語法:version_compare ( string $version1 , string $version2 [, string $operator ] )
具體說明:version_compare() 比較兩個「PHP 標準化」版本號字串。如果您想編寫僅在某些版本的 PHP 上運行的程序,這非常有用。
此函數首先用點取代 _、- 和 +。 在版本字串中,也插入點。 任何非數字之前和之後,例如“4.3.2RC1”變為“4.3.2.RC.1”。然後它會像使用explode('.', $ver) 一樣分割結果。然後從左到右開始比較各個部分。如果某個部分包含特殊版本字串,則按以下順序處理這些字串:在此清單中找不到的任何字串
其中一個第三可選參數是比較符:
如果您指定第三個可選運算符參數,您可以測試特定關係。可能的運算子分別為:、gt、>=、ge、==、=、eq、!=、、ne。
此參數是區分大小寫,因此值應為小寫。
回傳值:
預設情況下,version_compare() 如果第一個版本低於第二個版本,則傳回 -1;如果相等,則傳回 0;如果第二個版本較低,則傳回 1。
當使用可選的運算符參數時,如果關係是運算符指定的關係,函數將傳回 TRUE,否則傳回 FALSE。
從下面的例子,就可以很好地說明 version_compare 的方式:
<?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"; } ?>
最近在nagios的圖表監控插件pnp安裝中遇到一個錯誤提示:Kohana需要PHP 5.2或更新版本。查看頁面原始碼,發現如下語句:
version_compare(PHP_VERSION, '5.2', '彩虹版本不滿足就退出。
strcmp()的字串比較函數,也可以進行比較,但像下面這樣,就會出現錯誤:
4.1.10與4.1 .2比較
strcmp(“4.1.10”,“4.1.2”) ; 回傳會-1 錯誤
version_compare(“4.1.10”.“4.1.2”); 就會回傳1 正確