PHP extract() 函數從數組中把變量導入到當前的符號表中。對於數組中的每個元素,鍵名用於變量名,鍵值用於變量值。第二個參數 type 用於指定當某個變量已經存在,而數組中又有同名元素時,extract() 函數如何對待這樣的沖突。
將變量從PHP數組導出注冊為全局變量,實現鍵名當作變量名,值作為變量的值,如下
代碼如下 復制代碼 $vars = array('var1'=>'1','var2'=>'2','var3'=>'3','var4'=>'4','var5'=>'5');實現通過鍵名當作變量名的形式訪問,如:$var1,$var2
第一種方案:采用PHP內置extract()函數,方法如下
代碼如下 復制代碼 extract($vars);第二種方案:采用foreach循環數組注冊為全局變量,方法如下
代碼如下 復制代碼 foreach($vars as $k=>$v){推薦采用第二種方案,因為extract()函數存在性能和安全問題。
extract() 函數說明
(PHP 3 >= 3.0.7, PHP 4, PHP 5)
extract -- 從數組中將變量導入到當前的符號表
int extract ( array var_array [, int extract_type [, string prefix]] )
本函數用來將變量從數組中導入到當前的符號表中。接受結合數組 var_array 作為參數並將鍵名當作變量名,值作為變量的值。對每個鍵/值對都會在當前的符號表中建立變量,並受到 extract_type 和 prefix 參數的影響。
參考表
可選。extract() 函數將檢查每個鍵名是否為合法的變量名,同時也檢查和符號表中的變量名是否沖突。
對非法、數字和沖突的鍵名的處理將根據此參數決定。可以是以下值之一:
可能的值:
可選。請注意 prefix 僅在 extract_type 的值是 EXTR_PREFIX_SAME,EXTR_PREFIX_ALL,EXTR_PREFIX_INVALID 或 EXTR_PREFIX_IF_EXISTS 時需要。如果附加了前綴後的結果不是合法的變量名,將不會導入到符號表中。
前綴和數組鍵名之間會自動加上一個下劃線。
使用全部參數:
代碼如下 復制代碼