質問: array_filter($files, function ($file) { return !in_array($file, array('.', '..')); の部分がわかりません。 scandirの戻り値には要素の最初の方に「.」と「..」が付くのでそれを削除する目的だとブログにはありますが、in_arrayはただ第一引数のものを第二引数から検索するだけのはずなのに、$filesの中身をarray_filtersの処理後に確認してみるとちゃんと「.」と「..」が削除されていて不思議です。あとin_arrayは第一引数のものを第二引数の中から検索するという関数だと思いますが、なぜそれをわざわざ反転させて((array('.', '..'), $file);じゃなく($file, array('.', '..'));)!in_arrayとしてるんでしょうか? *ちなみに引用したブログのコードの動作は確認済みで元のコードは完全に正しいです。引用したコードに文句をつけているわけではなく自分がわかっていないだけです。(^^ゞ 以上です。よろしくお願いします。
回答: 技術者志望と受け取って、後学のために。 var_dump(変数); こんなんで、変数の中身が出力されます。 この直前に echo ''; なんて書いておくと出力が見やすくなります。 ループがおかしくて何も出力されないなんて時には、 exit(); なんて書くとそこで処理は中断されます。 と言うことで、 >内部的にどういう処理をしているのかよくわかってない 上記のものをつかえばよくわかりますよ。