6
<?php

$wordFrequencyArray = array();

function countWords($file) use($wordFrequencyArray) {  //error here
    /* get content of $filename in $content */
    $content = strtolower(file_get_contents($filename));

这是我正在使用的代码片段。

我在第 3 行遇到错误。我有所有匹配的大括号。可能出了什么问题?

4

5 回答 5

11

它应该是:

$countWords = function($file) use($wordFrequencyArray) {
  //...
};
于 2012-08-09T06:54:30.203 回答
9

只有匿名函数可能声明了一个use语句,因此错误消息警告您需要一个左括号而不是use语句。

要绕过没有use语句,您可以添加更多参数并将其传递给函数,或者在某些情况下将变量称为global

于 2012-08-09T06:55:00.730 回答
0

不是解决方案,而是增加讨论。

我在命名空间声明和使用命令中苦苦挣扎。最后我发现问题只是我试图在要使用该项目的函数中进行声明。这导致我的脚本因上述错误消息而失败。将声明移动到 php 脚本的开头

于 2013-09-09T10:16:44.887 回答
-2

尝试

<?php

$wordFrequencyArray = array();

function countWords($file) {  
global $wordFrequencyArray;
 /* get content of $filename in $content */
 $content = strtolower(file_get_contents($filename));
}
于 2012-08-09T06:55:18.250 回答
-2

使它类似于:

$wordFrequencyArray = array();

function countWords($file,$wordFrequencyArray)  {
    /* get content of $filename in $content */
    $content = strtolower(file_get_contents($filename));
}
于 2012-08-09T06:56:31.507 回答