您好,登錄后才能下訂單哦!
這篇文章給大家介紹PHP中extract()函數的作用是什么,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
PHP中extract()函數有哪些用處
在action.php中只要使用extract()函數將$_POST全局數據解開:
action.php
extract($_POST);
//相當于$username=$_POST['username'];
//$password=$_POST['password'];
?>
是不是很方便呢?呵呵,下面是PHP手冊里的詳細解釋:
extract
(PHP4,PHP5)
extract—從數組中將變量導入到當前的符號表
說明
intextract(array$var_array[,int$extract_type[,string$prefix]])
本函數用來將變量從數組中導入到當前的符號表中。接受結合數組var_array作為參數并將鍵名當作變量名,值作為變量的值。對每個鍵/值對都會在當前的符號表中建立變量,并受到extract_type和prefix參數的影響。
Note:自版本4.0.5起本函數返回被提取的變量數目。
Note:EXTR_IF_EXISTS和EXTR_PREFIX_IF_EXISTS是版本4.2.0中引進的。
Note:EXTR_REFS是版本4.3.0中引進的。
PHP中extract()函數有哪些用處
extract()檢查每個鍵名看是否可以作為一個合法的變量名,同時也檢查和符號表中已有的變量名的沖突。對待非法/數字和沖突的鍵名的方法將根據extract_type參數決定。可以是以下值之一:
EXTR_OVERWRITE
如果有沖突,覆蓋已有的變量。
EXTR_SKIP
如果有沖突,不覆蓋已有的變量。
EXTR_PREFIX_SAME
如果有沖突,在變量名前加上前綴prefix。
EXTR_PREFIX_ALL
給所有變量名加上前綴prefix。自PHP4.0.5起這也包括了對數字索引的處理。
EXTR_PREFIX_INVALID
僅在非法/數字的變量名前加上前綴prefix。本標記是PHP4.0.5新加的。
EXTR_IF_EXISTS
僅在當前符號表中已有同名變量時,覆蓋它們的值。其它的都不處理。可以用在已經定義了一組合法的變量,然后要從一個數組例如$_REQUEST中提取值覆蓋這些變量的場合。本標記是PHP4.2.0新加的。
EXTR_PREFIX_IF_EXISTS
僅在當前符號表中已有同名變量時,建立附加了前綴的變量名,其它的都不處理。本標記是PHP4.2.0新加的。
EXTR_REFS
將變量作為引用提取。這有力地表明了導入的變量仍然引用了var_array參數的值。可以單獨使用這個標志或者在extract_type中用OR與其它任何標志結合使用。本標記是PHP4.3.0新加的。
如果沒有指定extract_type,則被假定為EXTR_OVERWRITE。
注意prefix僅在extract_type的值是EXTR_PREFIX_SAME,EXTR_PREFIX_ALL,EXTR_PREFIX_INVALID或EXTR_PREFIX_IF_EXISTS時需要。如果附加了前綴后的結果不是合法的變量名,將不會導入到符號表中。前綴和數組鍵名之間會自動加上一個下劃線。
extract()返回成功導入到符號表中的變量數目。
Warning
不要對不能信任的數據使用extract(),例如用戶的輸入($_GET,…)。如果這樣做,舉例說,要臨時運行依賴于register_globals的老代碼,要確保使用不會覆蓋的extract_type值,例如EXTR_SKIP,并且要留意應該按照php.ini中由variables_order定義的順序來提取。
extract()的一種可能用法是將wddx_deserialize()返回的結合數組中的內容導入到符號表變量中去。
Example#1extract()例子
/*假定$var_array是wddx_deserialize返回的數組*/
$size=“large”;
$var_array=array(”color”=>“blue”,
“size”=>“medium”,
“shape”=>“sphere”);
extract($var_array,EXTR_PREFIX_SAME,“wddx”);
echo“$color,$size,$shape,$wddx_size\n”;
?>
上例將輸出:
blue,large,sphere,medium
$size沒有被覆蓋,因為指定了EXTR_PREFIX_SAME,這使得$wddx_size被建立。如果指定了EXTR_SKIP,則$wddx_size也不會被建立。EXTR_OVERWRITE將使$size的值為“medium”,EXTR_PREFIX_ALL將建立新變量$wddx_color,$wddx_size和$wddx_shape。
必須使用關聯數組,數字索引的數組將不會產生結果,除非用了EXTR_PREFIX_ALL或者EXTR_PREFIX_INVALID。
關于PHP中extract()函數的作用是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。