PHP版本的If条件忽略新代码

PHP版本的If条件忽略新代码,php,version,php-5.3,php-5.2,Php,Version,Php 5.3,Php 5.2,所以我有一个脚本需要在几个站点上运行。我有一个版本的脚本,它通过一些新的PHP5.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服务器上,它

所以我有一个脚本需要在几个站点上运行。我有一个版本的脚本,它通过一些新的PHP5.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中语法无效的脚本将永远不会包含在该版本中

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

与上面的代码和调用两个不同的函数不同,我建议创建PHP5.3函数,如果它们不存在的话。这样你只需要记住一个函数名而不是两个

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

example_func('abc','def');

如果在If/else条件下调用不同的脚本,则可以使用,php只会在打开时编译它们。