【问题标题】:PHP 5.3 lambda anonymous function not workingPHP 5.3 lambda 匿名函数不起作用
【发布时间】:2012-06-29 00:31:42
【问题描述】:

我不知道这里出了什么问题。这是我的 test.php 文件:

<?php
error_reporting(E_ALL);
echo phpversion();
$arr = array ();

$attrs = array_filter((array)$arr, function($v) {
    return ($v || $v === 0 || $v === '0');
}); 

这个脚本的输出是:

5.3.3 警告:array_filter() 期望参数 2 是有效的回调,在第 8 行的 /path/test.php 中没有给出数组或字符串

怎么可能?我认为 PHP 5.3 支持 lambdas。

【问题讨论】:

  • 它在我的本地环境中工作,但在生产中,我明白了。有谁知道我会在我的 PHP 配置中检查哪些可能会以某种方式阻止使用 lambda 的内容?老实说,我什至不敢相信我所看到的。我对我来说完全没有意义。
  • 如果我将错误报告减少到 E_ERROR,它就可以工作。但这并不理想。

标签: php function lambda


【解决方案1】:

这与 eAccelerator 中的一个错误有关,该错误在缓存使用 lambda 的操作码时出现问题。已更新到 eAccelerator 的最新版本并已修复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-19
    • 2011-05-08
    • 2014-08-09
    • 2019-09-12
    相关资源
    最近更新 更多