突然间,我收到致命错误:无法重新声明

时间:2012-06-30 22:57:47

标签: php

我之前在以前工作完美的代码上遇到了一个奇怪的错误,但突然开始推出错误......

这是重要的代码:

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 /中重新声明cmp()(之前在/store/cpanel/home/martinak/public_html/modules/mod_supersized/mod_supersized.php:3中声明)第8行的mod_supersized / mod_supersized.php

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

如前所述的代码工作,它没有改变,几个月后就停止了工作。可能是服务器配置问题?有什么想法吗?

谢谢! S上。

更新:

我很抱歉。我刚刚意识到我的客户搞砸了我的代码。我讨厌人们试图在没有知情的情况下解决问题,然后在他们搞砸的时候求救。

我为浪费你的时间而道歉,我希望你能原谅我。

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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