基於PHP的extract的用法詳解

2020-07-16 10:06:00

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其它相關文章!