1

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

4

0 回答 0