以下因PHP 5.2.X上的解析错误而失败:
if (version_compare(PHP_VERSION, '5.3.0') >= 0) {
$greater = function($left, $right) {
return $left > $right;
}
}
else {
$greater = create_function('$left, $right', 'return $left > $right;');
}
我猜原因可能相当明显,所以真正的问题是:
“有没有办法让我这样做,而不是把它 5.3.0依赖定义在一个单独的文件中,然后有条件地包括该文件,如果版本是5.3.0或更高?“
如果我想要定义的函数是一流的命名函数,那么将它放在一个单独的文件中的函数就会减少。但是从代码可读性的角度来看(IMO),匿名函数的一个好处是它的源文本在定义/使用它的模块体中是可见的。将定义放在不同的源文件中几乎可以扼杀这种好处。