0

谁能给我以下代码行的解决方案:

 $filteredArray = array_filter($wordArray, function ($x) {
    return !preg_match("/^(.|a|an|and|the|this|at|in|or|of|is|for|to|em|com|be
       |with|href|me|rt|by|np|http|www)$/x", $x);
 });

此行在我的本地主机中使用 XAMPP 没有产生任何错误,但同一行在我的 nginx 服务器(在线)中显示错误。

我能为此做些什么。为什么会这样显示?

4

2 回答 2

2

听起来您的服务器可能没有运行 PHP 5.3 或更高版本,这是支持匿名函数所必需的。相反,您可以创建函数并将其作为回调函数字符串传递给array_filter().

function wordFilter($x) {
  return !preg_match("/^(.|a|an|and|the|this|at|in|or|of|is|for|to|em|com|be
    |with|href|me|rt|by|np|http|www)$/x", $x);
}

$filtered_array = array_filter($wordArray, 'wordFilter');
于 2012-04-26T18:31:34.203 回答
0

您在 nginx 服务器上的 php 版本太旧,无法使用匿名函数(闭包——至少 PHP 5.3)是必需的。您可以使用create_function在旧版本中创建函数,并且在新版本中仍然有效。

于 2012-04-26T18:31:24.813 回答