0

我有一个名为的空文件夹my_folder

$mas = glob("my_folder/*");
var_dump($mas);

如果在my_folder我有文件,结果是一个数组,但如果my_folder是空的,结果是false.

为什么结果false而不是空数组()?

4

4 回答 4

2
  • 很可能您没有my_folder.

  • 也可能是因为(来自 PHP 手册):

在某些系统上,无法区分空匹配和错误。

如果后者是你的情况,我建议你回到“经典”的方式来做到这一点:

while (false !== ($entry = readdir($handle))) {
        echo "$entry\n";
}

使用:

opendir(), readdir(), closedir()
于 2012-12-10T21:23:42.337 回答
1

PHP 手册说出现错误时glob返回。FALSE你没有得到一个空数组,因为有一个错误。

以下是一些常见的错误glob

  • 您没有文件/文件夹的权限(嗯,www-data没有权限,也就是说)
  • 你打错了什么
  • 您正在尝试处理远程文件(不支持)
  • 您正在使用没有它的旧系统(例如,非常旧的 S OS)
于 2012-12-10T21:24:11.193 回答
0

返回值:返回一个包含匹配文件/目录的数组,如果没有匹配的文件,则返回一个空数组,如果错误则返回 FALSE

注意: 在某些系统上,无法区分空匹配和错误。

检查这两点与您和您的特定平台无关。

于 2012-12-10T21:24:28.987 回答
0

返回值部分下的PHP glob 手册页:

返回一个包含匹配文件/目录的数组,如果没有匹配的文件,则返回一个空数组,或者错误时返回 FALSE。

于 2012-12-10T21:25:27.327 回答