起因是看到了一個簡單php上傳腳本:http://www.nowamagic.net/librarys/veda/detail/1384
我重構了一下,主要是用匿名函數代替了foreach循環,利用了閉包的新特性,從而也提高了性能。需要注意的是閉包並不就完全等於匿名函數,閉包是通過匿名函數實現的,跟use關鍵字的使用有關。
記錄下就當拋磚引玉了,畢竟隨着php眾多新特性的加入,我們程序員也要與時俱進不斷優化代碼,重構自身。
以下是重構后的php部分:
$img = $_FILES['img']; if ($img) { //文件存放目錄,和本php文件同級 $dir = dirname(__file__); array_walk($img['tmp_name'], function ($value) use($dir,$img) { //保證$img['tmp_name']和$img['name']中索引的對應 $filename = $img['name'][array_search($value, $img['tmp_name'])]; //設置上傳路徑 $savepath="$dir\\$filename"; //上傳,並返回狀態 $state = move_uploaded_file($value, $savepath); //如果上傳成功,預覽 if($state) { echo "<img src='$filename' alt='$filename' /> "; } }); }