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的用法詳解的詳細內容,更多請關注TW511.COM其它相關文章!