0

我的下载脚本有问题,一切正常,它列出了文件夹中的所有项目,我可以下载它们,但我仍然收到错误消息。我试图重新排列“”和“”,但后来我遇到了其他一些奇怪的错误。

这是我的错误:

注意:未定义变量:第 5 行 D:\xampp\htdocs\download_test\index.php 中的列表


这是我的代码

 <?php
 if ($handle = opendir('downloads/')) {
   while (false !== ($file = readdir($handle))) {
          if ($file != "." && $file != "..") {
            $thelist .= '<li><a href="http://localhost/download_test/download.php?f=downloads/'.$file.'">'.$file.'</a></li>';

          }
       }
  closedir($handle);
  }
?>
<h1>List of files:</h1>
<ul><?php echo $thelist; ?></ul>

帮助真的很感激!谢谢!

4

3 回答 3

3
$thelist .= 'blah';

是简写

$thelist = $thelist . 'blah';

即使您尝试在行首(= 之前)定义 $thelist,这也取决于首先执行的行的后半部分(= $thelist . 'blah')——因为您需要解决值,然后才能将其存储在变量中。但是,正如您没有说 $thelist 是什么,PHP 假定它是一个空变量。

正如 bwoebi 所提到的,您需要定义 $thelist 来解决这个问题。将其设置为空值,即

$thelist = '';

你的外部 if 子句之前的任何地方都应该解决这个问题。

于 2013-04-27T13:49:59.580 回答
2

您必须先初始化变量:

$thelist = "";

在你的 if 子句之前。

当您第一次尝试扩展尚不存在的字符串时,会发生未定义的错误。

于 2013-04-27T13:45:26.427 回答
0

它只是一个通知,而不是一个错误。它说在一个好的代码中,你应该在使用它之前先声明一个变量。不过,您的代码可以正常工作。

于 2013-04-27T13:51:08.490 回答