2011-08-22 125 views
-1

我正在嘗試使用RecursiveIteratorIteratorRecursiveDirectoryIteratorRecursiveIteratorIterator空白頁面

我想要在我的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"; 
} 
+0

當問這樣的問題時,總是提供輸出。 – hakre

回答

2

這是因爲PHPs StdObj -class不能用作數組,因爲它是一個關聯數組。這是錯誤的,但我無法更好地描述它。 PHP對象被鑄造或類似的東西。

如果$data是一個對象,那麼如果您想要訪問$value作爲對象,則這是必需的。

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

編輯:這是一個很好的問題btw,我花了幾個小時自己搞清楚了這一點。

+1

感謝您的回答:) – Ahmad

3

很有可能是因爲你的PHP解釋器不能訪問該文件夾。

+0

但是爲什麼如果我使用第二個代碼echo $ key。「=>」。$ file。「\ n」; – Ahmad