extract
#函數從陣列中將變數匯入到目前的符號表。
此函數使用陣列鍵名作為變數名,使用陣列鍵值作為變數值。針對數組中的每個元素,將在目前符號表中建立對應的變數。
第二個參數 type 用來指定當某個變數已經存在,而陣列中又有同名元素時,extract() 函數如何處理這樣的衝突。
此函數傳回成功匯入符號表中的變數數目。
語法
extract(array,extract_rules,prefix)
array
必要。規定要使用的數組。
extract_rules
可選。 extract() 函數將檢查每個鍵名是否為合法的變數名,同時也檢查和符號表中已存在的變數名稱是否衝突。對不合法和衝突的鍵名的處理將根據此參數決定。
可能的值:
EXTR_OVERWRITE - 預設。如果有衝突,則覆蓋已有的變數。
EXTR_SKIP - 如果有衝突,不覆寫已有的變數。
EXTR_PREFIX_SAME - 若有衝突,在變數名稱前加上前綴 prefix。
EXTR_PREFIX_ALL - 為所有變數名稱加上前綴 prefix。
EXTR_PREFIX_INVALID - 僅在不合法或數字變數名稱前加上前綴 prefix。
EXTR_IF_EXISTS - 僅在目前符號表中已有同名變數時,覆寫它們的值。其它的都不處理。
EXTR_PREFIX_IF_EXISTS - 僅在目前符號表中已有同名變數時,建立附加了前綴的變數名,其它的都不處理。
EXTR_REFS - 將變數作為引用提取。導入的變數仍然引用了數組參數的值。
prefix
可選。請注意 prefix 僅在 extract_type 的值是 EXTR_PREFIX_SAME,EXTR_PREFIX_ALL,EXTR_PREFIX_INVALID 或 EXTR_PREFIX_IF_EXISTS 時需要。如果附加了前綴後的結果不是合法的變數名,則不會匯入符號表。
前綴和陣列鍵名之間會自動加上一個底線。
範例一,原來陣列的值不變,並且給變數$a,$b,$c,$d,$e賦了值
$arr=array('a'=>1,'b'=>2,'c'=>3,'d'=>5,'e'=>6); extract($arr); print_r($arr); print_r($a); print_r($b); print_r($c); print_r($d); print_r($e);
輸出
Array ( [a] => 1 [b] => 2 [c] => 3 [d] => 5 [e] => 6 ) 1 2 3 5 6
推薦教學:《PHP影片教學》
以上是基於PHP的extract的用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!