【发布时间】: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,它就可以工作。但这并不理想。