当我使用匿名函数(但另请参阅下面的注释)时,例如:
$f = function() use ($out) {
echo $out;
};
它会在 PHP 早于5.3.0
. 我的软件需要兼容未知的服务器,但同时我也想使用新功能,所以我想我会添加一些版本检查,
if (o99_php_good() != true){
$f = function() use ($out) {
echo $out;
};
}
o99_php_good()
简单的地方
function o99_php_good(){
// $ver= ( strnatcmp( phpversion(),'5.3.0' ) >= 0 )? true:false;
$ver= ( version_compare(PHP_VERSION, '5.3.0') >= 0 )? true:false;
return $ver;
}
但仍然产生错误。
有没有办法以某种方式“隔离”那部分代码?
我想过include()
基于版本检查做一个条件,这可能会起作用,但是每次我需要使用一个函数时都制作一个单独的文件是很荒谬的......
有什么创造性的(或微不足道的)解决方案吗?
注意:这里的示例只是一个 Lambda 函数,但问题可能出现在所有其他函数中,这是一个新特性和/或某些服务器可能不支持..
评论后编辑我。
添加“最低要求”列表总是好的,但这并不能解决问题。
如果不想失去用户(不是所有客户都满意,或者每次我更新新功能时都可以升级他们的服务器),那只会迫使我将我的软件“分叉”成 2 个(或可能更多)难以管理的版本。