基于PHP版本的变体匿名函数定义?

时间:2012-12-26 05:01:55

标签: php anonymous-function conditional-compilation version-detection

以下因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),匿名函数的一个好处是它的源文本在定义/使用它的模块体中是可见的。将定义放在不同的源文件中几乎可以扼杀这种好处。

0 个答案:

没有答案