【问题标题】:If condition for PHP Version ignore new code如果 PHP 版本的条件忽略新代码
【发布时间】:2014-06-26 09:35:28
【问题描述】:

所以我有一个需要在多个站点上运行的脚本。我有一个脚本版本,它使用一些新的 PHP 5.3 函数进行了优化,但是有些网站是 5.2 等。

这段代码:

if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
    Do the optimised 5.3 code (Although 5.2 throws syntax errors for it)
} else {
  do the slower version of code
}

但是,在 5.2 服务器上,它会在第一个 if 条件中检测到“语法错误”,即使它在技术上应该跳过该内容,但我知道 PHP 仍然会扫描整个文件。

我怎样才能让 5.2 完全忽略第一个(我知道我可以使用“@”来忽略错误,但这感觉像是作弊?)

【问题讨论】:

标签: php version php-5.3 php-5.2


【解决方案1】:

您可以根据版本包含不同的脚本,那么在 5.2 中语法无效的脚本将永远不会包含在该版本中。

if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
     include("script53.php");
} else {
     include("script52.php");
}

【讨论】:

    【解决方案2】:

    如果它们不存在,我建议创建您需要的 PHP 5.3 函数,而不是上面的代码并调用两个不同的函数。这样你只需要记住一个函数名而不是两个。

    if (!function_exists('example_func')) {
       function example_func($str,$str2) {
          return $str.$str2; 
       }
    }
    
    example_func('abc','def');
    

    【讨论】:

      猜你喜欢
      • 2019-06-02
      • 2023-03-04
      • 2014-06-22
      • 2019-09-11
      • 2023-03-06
      • 2016-09-08
      • 1970-01-01
      • 2015-01-02
      • 1970-01-01
      相关资源
      最近更新 更多