RecursiveIterator迭代器空白页

发布于 2024-11-30 15:52:31 字数 632 浏览 0 评论 0原文

我正在尝试使用 RecursiveIteratorIteratorRecursiveDirectoryIterator

我想获取 c:\ 文件夹中的所有文件。但我不知道为什么我无法得到结果,而是一个空白页。

$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator('c:/' ));
foreach( $it as $file ) {
    $all[] = $file->getRealPath();
}
print_r($all);

但如果我使用这段代码,它就可以工作

foreach( $it as $key=>$file )
{
    echo $key."=>".$file."\n";
}

I'm trying to use RecursiveIteratorIterator and RecursiveDirectoryIterator.

I want get all file inside my c:\ folder. But i don't know why i can't get the result but a blank page.

$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator('c:/' ));
foreach( $it as $file ) {
    $all[] = $file->getRealPath();
}
print_r($all);

but if i use this code, it's work

foreach( $it as $key=>$file )
{
    echo $key."=>".$file."\n";
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

谁的年少不轻狂 2024-12-07 15:52:31

很可能是因为您的 PHP 解释器无权访问该文件夹。

Most likely because your PHP interpreter does not have access to that folder.

素衣风尘叹 2024-12-07 15:52:31

这是因为 PHP 的 StdObj 类不能用作数组,因为它是关联数组。这句话用词是错误的,但我无法更好地描述它。 PHP 对象被强制转换或类似的东西。

如果 $data 是一个对象,那么如果您想将 $value 作为对象访问,则这是必需的。

foreach($data as $property => $value){
    echo $value->r;
}

编辑:顺便说一句,这是一个很好的问题,我自己花了几个小时来解决这个问题。

It's because PHPs StdObj-class cannot be used as an array because it's an associative array. This is wrong by the words but I cannot describe it better. The PHP object gets casted or something like that.

If $data is an object then this is required if you want to access $value as an object.

foreach($data as $property => $value){
    echo $value->r;
}

Edit: This is a good question btw, I've spent a couple of hours myself figuring this out.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文