您現在的位置是:首頁 > PHP函數

李清波 2019-08-12 PHP函數 635

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



示例二,將鍵值 "Cat"、"Dog" 和 "Horse" 賦值給變量 $a、$b 和 $c:

$a = "Original";
$my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse");
extract($my_array);
echo "\$a = $a; \$b = $b; \$c = $c";

輸出

$a = Cat; $b = Dog; $c = Horse



上一篇:php switch

下一篇:php_uname

評論