php 使數組的所有key自動成爲變量----extract()函數

 有時候會想把數組裏的字段導出來做變量使用,例如一個函數的參數太多,你可能會考慮使用數組傳遞變量,但在函數內部使用數組引用變量寫起來不是很方便 

function fun($data)
{
        $title = $data["title"];
        $content = $data["content"];
        ....
}

又或者你在使用模板的時候,給模板傳遞的值一般也是變量集合的數組,但模板內部你還是想用變量名替代數組引用。

太多了寫起來不方便,有時也會這樣寫:

function fun ($data)
{
        foreach($data as $k=>$v)
        {
                $k = $v;
        }
        ......
}

呵呵,習慣了這樣寫也沒發現什麼不好的,不過今天發現一個哥們使用了extract()函數,十分方便,而且效率上也比上面的方法快。

這個函數從數組中把變量導入到當前的符號表中(相當於定義了這個變量)。

對於數組中的每個元素,鍵名用於變量名,鍵值用於變量值。

第二個參數 type 用於指定當某個變量已經存在,而數組中又有同名元素時,extract() 函數如何對待這樣的衝突。通常是EXTR_OVERWRITE(覆蓋,默認值),或是 EXTR_SKIP(忽略)

<?php
$a = 'Original';
$my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse");
extract($my_array);
echo "\$a = $a; \$b = $b; \$c = $c";
?>

輸出

$a = Cat; $b = Dog; $c = Horse


具體可參考http://www.w3school.com.cn/php/func_array_extract.asp

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章