php version_compare() 在本地主机上失败,在服务器上运行
php version_compare() fails on localhost, runs on server
这个条件代码执行 if 语句就在 php 手册中:
// version_compare ( string $version1 , string $version2 [, string $operator ] )
// http://php.net/manual/en/function.version-compare.php
if (version_compare(PHP_VERSION, '5.3.0') >= 0)
{
//echo 'I am at least PHP version 5.3.0, my version: ' . PHP_VERSION . "\n";
include_once( DOMAIN_PATH . "sitewide/functions/make_comparer.php" );
usort($market_and_volume, make_comparer(['exchange_volume', SORT_DESC], ['exchange', SORT_DESC]));
}
以上代码在生产服务器上运行没有错误。在 localhost php 版本 5.2.9-2 上,理论上无法使 version_compare() 函数抛出错误:
解析错误:解析错误,在第 61 行 test.php 中应为 `')''
通常我可能不在乎,因为它 运行 在 5.4.39 生产服务器上,但是我计划在几乎每个本地主机页面上使用这个代码段,因为它现在会阻碍未来的发展。
有什么想法吗?
问题是您使用的是 shorthand 数组表示法。 [...]
。不幸的是,这仅在 PHP 5.4.0 及更高版本中受支持。尽管 "bad" 代码永远不会 运行 它无法编译,因此会抛出错误。
这可以通过像这样使用 array(...)
符号来解决。
// version_compare ( string $version1 , string $version2 [, string $operator ] )
// http://php.net/manual/en/function.version-compare.php
if (version_compare(PHP_VERSION, '5.3.0') >= 0)
{
//echo 'I am at least PHP version 5.3.0, my version: ' . PHP_VERSION . "\n";
include_once( DOMAIN_PATH . "sitewide/functions/make_comparer.php" );
usort($market_and_volume, make_comparer(array('exchange_volume', SORT_DESC), array('exchange', SORT_DESC)));
}
这个条件代码执行 if 语句就在 php 手册中:
// version_compare ( string $version1 , string $version2 [, string $operator ] )
// http://php.net/manual/en/function.version-compare.php
if (version_compare(PHP_VERSION, '5.3.0') >= 0)
{
//echo 'I am at least PHP version 5.3.0, my version: ' . PHP_VERSION . "\n";
include_once( DOMAIN_PATH . "sitewide/functions/make_comparer.php" );
usort($market_and_volume, make_comparer(['exchange_volume', SORT_DESC], ['exchange', SORT_DESC]));
}
以上代码在生产服务器上运行没有错误。在 localhost php 版本 5.2.9-2 上,理论上无法使 version_compare() 函数抛出错误:
解析错误:解析错误,在第 61 行 test.php 中应为 `')''
通常我可能不在乎,因为它 运行 在 5.4.39 生产服务器上,但是我计划在几乎每个本地主机页面上使用这个代码段,因为它现在会阻碍未来的发展。
有什么想法吗?
问题是您使用的是 shorthand 数组表示法。 [...]
。不幸的是,这仅在 PHP 5.4.0 及更高版本中受支持。尽管 "bad" 代码永远不会 运行 它无法编译,因此会抛出错误。
这可以通过像这样使用 array(...)
符号来解决。
// version_compare ( string $version1 , string $version2 [, string $operator ] )
// http://php.net/manual/en/function.version-compare.php
if (version_compare(PHP_VERSION, '5.3.0') >= 0)
{
//echo 'I am at least PHP version 5.3.0, my version: ' . PHP_VERSION . "\n";
include_once( DOMAIN_PATH . "sitewide/functions/make_comparer.php" );
usort($market_and_volume, make_comparer(array('exchange_volume', SORT_DESC), array('exchange', SORT_DESC)));
}