extract
(PHP3 >= 3.0.7 , PHP4)
array_extract --- 從陣列輸入變數到符號表格中
語法 : void extract(array var_array, int [extract_type] , string [prefix] );
說明 :
此函式從陣列輸入變數到目前的符號(symbol)表格中,它取陣列var_array並且看待索引值為變數名稱,值為變數值,它將各個key/value對建立一變數在目前符號表格中,以extract_type和prefix為條件。
extract( )檢查現存的變數,由參數extract決定碰撞時處理的方式為何,它可以是以下之一的值 :
EXTR_OVERWRITE
若發生碰撞則覆蓋過現存的變數
EXTR_SKIP
若發生碰撞則不覆蓋過現存的變數
EXTR_PREFIX_SAME
若發生碰撞則將參數prefix加在字首前面成為新變數
EXTR_PREFIX_ALL
把所有變數的字首都加上參數prefix
如果沒有指定參數extract_type,則使用EXTR_OVERWRITE。
注意 : 當extract_type是EXTR_PREFIX_SAME或是 EXTR_PREFIX_ALL時,才需要參數prefix。
Example :
<?php
/* Suppose that $var_array is an array returned from wddx_deserialize */
$size = "large";
$var_array = array("color" => "blue", "size" => "medium","shape" => "sphere");
extract($var_array, EXTR_PREFIX_SAME, "wddx");
print "$color, $size, $shape, $wddx_size\n";
?>
上面的範例將會產生出 :
blue, large, sphere, medium
$size並沒有覆蓋過去,因為我們指定了EXTR_PREFIX_SAME,而$wddx_size中的結果已被建立,若是使用EXTR_SKIP,則$wddx_size不會被建立,若是使用EXTR_OVERWRITE則 $size的值就是medium,若是使用EXTR_PREFIX_ALL則將會有名稱為$wddx_color、$wddx_size和$wddx_shape的新變數存在。