2012-04-22 13 views
-3

誰かがこのコードを手伝ってくれますか?私はそれが動作するように見えることはできません!scandirエラー:foreach()に無効な引数が指定されました

<?php 
$file = scandir("../"); 

foreach ($files as $file) { 
    if(is_dir($file) && $file != '.' && $file != '..' && $file != 'images') { 
     $folders++; // Counter 
    } elseif(is_file($file) && $file != '.' && $file != '..' && $file != 'index.php') { 
     $total++; // Counter 
    } 
} 

echo "$folders folders · $total files"; 
?> 

そして、私が手にエラーがある:すべてのあなたのコードの上部に

Invalid argument supplied for foreach()

+0

Typo: '$ file = scandir(" ../ ");'は基本的なデバッグの手間がないため、 '$ files = ...' -1にする必要があります。また$フォルダを初期化したり、合計$ –

+0

も ​​'$ files'として動作しません –

+0

変数名を再確認してください。 '$ files'が' scandir() 'によって生成された配列の場合、' foreach'はそれを踏襲して '$ file'を配列の各値に設定する必要があります。 'scandir()'の出力が失敗しているかどうかを確認するには、 'foreach'の前に' print_r($ files); 'を追加してください。 – ghoti

答えて

0
error_reporting(E_ALL); 

あなたはforeachのエラーが、無Undefined variable: files 1を取得している場合は常に、まあ

を支援 - scandirとループの間の変数$filesで何か悪いことをしているようです。

他のコードを実行しているすべての人をだましているだけで、ここには投稿されていません。

+0

私はこれを行うと次のエラーが出ます:'未定義の変数:フォルダ 'と'未定義の変数:合計 ' –

+0

あなたのコードで一瞬考えてくださいあなたが問題を解決する方法は?未定義の変数?それを最初に定義してください! (この場合はカウンタを使用しますが、初期化はしません) –

+0

@FlameTrap foreachエラーが発生しても問題ありません。 –

関連する問題