2016-01-13 69 views
0

我有一些有問題的代碼行array deferencing。如果主機的PHP 5.3或更低版本有時會出現這些問題。有沒有辦法在得到解析錯誤之前檢測PHP版本?

是否有辦法有這樣那樣的錯誤之前檢測PHP版本,並給予適當的警告:

Parse error: syntax error, unexpected '[' in

+2

不是來自同一個腳本中 - 因爲它是你的腳本甚至可以運行之前發生的解析錯誤。 – CBroe

+0

if(version_compare(phpversion(),'5.3.10','<')){ //寫入代碼。 } – jewelhuq

+0

沒有這是不可能在同一頁上。 –

回答

0

this得到它:

echo 'Current PHP version: ' . phpversion(); 

但只能從另一頁。也許你應該使用一種內部重定向。

0

如果你有一些單次入境的引導文件,你可以把這樣的事情有:

if (PHP_VERSION_ID < 50300) { 
    die('PHP 5.3 or higher is required'); 
} 

了很多進一步的提示和技巧見http://php.net/phpversion

考慮到這個檢查需要在每一個頁面加載上運行;雖然它不是很昂貴,但它仍然是還有一件事需要完成。只需清楚地記錄您的版本要求或在安裝腳本中進行一次檢查即可,或者更明智。

還要考慮這個檢查需要在一個文件中完成,該文件完全與PHP < 5.3兼容;如果在解析錯誤發生的同一個文件中,它也不能執行這個檢查。

0

您可以使用version_compare

例如(從文檔):

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