PHP閉包特性應用:代替循環,提高代碼性能。


起因是看到了一個簡單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' />&nbsp;";
        }
    });
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM