所以我有一个需要在多个站点上运行的脚本。我有一个版本的脚本,它使用一些新的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(我知道我可以用“@”来忽略错误,但这感觉就像是作弊?)
答案 0 :(得分:4)
您可以根据版本包含不同的脚本,然后在5.2中永远不会包含语法在5.2中无效的脚本。
if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
include("script53.php");
} else {
include("script52.php");
}
答案 1 :(得分:2)
除了上面的代码并调用两个不同的函数,我建议创建你需要的PHP 5.3函数,如果它们不存在的话。这样你只需要记住一个函数名而不是两个。
if (!function_exists('example_func')) {
function example_func($str,$str2) {
return $str.$str2;
}
}
example_func('abc','def');