0

我在一段以前可以完美运行的代码上遇到一个奇怪的错误,但突然开始推出错误......

这是相关的代码:

function cmp($a, $b) {
if ($a == $b) {
    return 0;
}
return ($a < $b) ? -1 : 1;
}

function getFileList($dir)
{
   // array to hold return value
$retval = array();

// add trailing slash if missing
if(substr($dir, -1) != "/") $dir .= "/";

// open pointer to directory and read list of files
$d = @dir($dir) or die("getFileList: Failed opening directory $dir for reading");
while(false !== ($entry = $d->read())) {
  // skip hidden files
  if($entry[0] == ".") continue;
  if(is_dir("$dir$entry")) {
    $retval[] = array(
      "name" => "$dir$entry/",
      "type" => filetype("$dir$entry"),
      "size" => 0,
      "lastmod" => filemtime("$dir$entry")
    );
  } elseif(is_readable("$dir$entry")) {
    $retval[] = array(
      "name" => "$dir$entry",
      "type" => mime_content_type("$dir$entry"),
      "size" => filesize("$dir$entry"),
      "lastmod" => filemtime("$dir$entry")
    );
  }
}
$d->close();

uasort($retval, 'cmp');
return $retval;
}

我得到的错误是:

致命错误:无法在 /store/cpanel/home/martinak/public_html/modules/mod_supersized/mod_supersized 中重新声明 cmp()(之前在 /store/cpanel/home/martinak/public_html/modules/mod_supersized/mod_supersized.php:3 中声明) .php 在第 8 行

现在,如错误中所述,上面的代码确实从第 3 行开始,但第 8 行仅包含“}”。

如前所述,代码过去可以工作,它没有改变,几个月后才停止工作。会不会是服务器配置问题?有任何想法吗?

谢谢!S。

更新:

我很抱歉,伙计们。我刚刚意识到我的客户弄乱了我的代码。我讨厌人们在没有知识的情况下试图解决问题,然后当他们把事情搞砸时哭着求助。

很抱歉浪费了你的时间,希望你能原谅我。

4

4 回答 4

2

看起来你已经包含了这个文件两次。只需从require()/切换include()require_once()/ include_once()

于 2012-06-30T23:01:38.760 回答
1

您正在定义 cmp() 函数两次(或更多)次。也许你不止一次地包含了这段代码......

于 2012-06-30T23:00:27.477 回答
1

也许您require在其他文件中使用并且已经存在 cmp 功能

于 2012-06-30T23:01:04.007 回答
1

唯一可能的解释是您多次包含同一个文件。将您的 include 或 require 更改为 include_once 和 require_once。

于 2012-06-30T23:01:36.947 回答