2010-12-15 16 views
0

古いメンバーファイルを削除するループを実行していますが、以下のエラーが表示されます1つのメンバーファイル?PHP - 致命的なエラー:前に4行目に宣言したdelete_directory()を再宣言できません

Fatal error: Cannot redeclare delete_directory() previously declared on line 4 

ここはPHPコードです。

for($x = 0; $x < count($delete_member); $x++){ 

    //delete members files and folders from the server 
    $dirname = './members/' . $delete_member[$x] . '/'; 
    function delete_directory($dirname) { 
     if (is_dir($dirname)) { 
      $dir_handle = opendir($dirname); 
     } 
     if (!$dir_handle) { 
      return false; 
     } 
     while($file = readdir($dir_handle)) { 
      if ($file != "." && $file != "..") { 
      if (!is_dir($dirname."/".$file)) { 
       unlink($dirname."/".$file); 
      } else { 
       delete_directory($dirname.'/'.$file); 
      } 
      } 
     } 
     closedir($dir_handle); 
     rmdir($dirname); 
     return true; 
    } 

    delete_directory($dirname); 
} 

答えて

5

ループの外でdelete_directory関数の定義を取ります。必要な回数だけ呼び出すためには一度だけ定義する必要があります。

あなたのコメントから判断すると、あなたは基本的なPHPの構文に慣れていないので、私は下の訂正が表示されます:私は入門PHPの本を購入し、ビットを読ん

+0

私を許してお勧めします

function delete_directory($dirname) { if (is_dir($dirname)) { $dir_handle = opendir($dirname); } if (!$dir_handle) { return false; } while($file = readdir($dir_handle)) { if ($file != "." && $file != "..") { if (!is_dir($dirname."/".$file)) { unlink($dirname."/".$file); } else { delete_directory($dirname.'/'.$file); } } } closedir($dir_handle); rmdir($dirname); return true; } for($x = 0; $x < count($delete_member); $x++){ //delete members files and folders from the server $dirname = './members/' . $delete_member[$x] . '/'; delete_directory($dirname); } 

無知の定義は何ですか? – HELP

+1

'function delete_directory'という行は' delete_directory'という名前の関数を定義しています。これはループ内にあるので、ループが実行される回数だけ関数を再定義しようとします。エラーが言うように、あなたはこれを行うことはできません。 –

関連する問題