#### 語法
> extract(array,extract_rules,prefix)
#### 定義和用法
extract() 函數從數組中將變量導入到當前的符號表。
該函數使用數組鍵名作為變量名,使用數組鍵值作為變量值。針對數組中的每個元素,將在當前符號表中創建對應的一個變量。
第二個參數 type 用于指定當某個變量已經存在,而數組中又有同名元素時,extract() 函數如何對待這樣的沖突。
該函數返回成功導入到符號表中的變量數目。
#### 實例
將鍵值 "Cat"、"Dog" 和 "Horse" 賦值給變量 $a、$b 和 $c:
~~~
<?php
$a = "Original";
$my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse");
extract($my_array);
echo "\$a = $a; \$b = $b; \$c = $c";
?>
~~~
|參數 |描述|
|---|---|
|array |必需。規定要使用的數組。|
|extract_rules |可選。extract() 函數將檢查每個鍵名是否為合法的變量名,同時也檢查和符號表中已存在的變量名是否沖突。對不合法和沖突的鍵名的處理將根據此參數決定。可能的值:<br><br>1. EXTR_OVERWRITE - 默認。如果有沖突,則覆蓋已有的變量。<br>2. EXTR_SKIP - 如果有沖突,不覆蓋已有的變量。<br>3. EXTR_PREFIX_SAME - 如果有沖突,在變量名前加上前綴 prefix。<br>4. EXTR_PREFIX_ALL - 給所有變量名加上前綴 prefix。<br>5. EXTR_PREFIX_INVALID - 僅在不合法或數字變量名前加上前綴 prefix。<br>6. EXTR_IF_EXISTS - 僅在當前符號表中已有同名變量時,覆蓋它們的值。其它的都不處理。<br>7. EXTR_PREFIX_IF_EXISTS - 僅在當前符號表中已有同名變量時,建立附加了前綴的變量名,其它的都不處理。<br>8. EXTR_REFS - 將變量作為引用提取。導入的變量仍然引用了數組參數的值。<br><br>
|prefix |可選。請注意 prefix 僅在 extract_type 的值是 EXTR_PREFIX_SAME,EXTR_PREFIX_ALL,EXTR_PREFIX_INVALID 或 EXTR_PREFIX_IF_EXISTS 時需要。如果附加了前綴后的結果不是合法的變量名,將不會導入到符號表中。<br><br>前綴和數組鍵名之間會自動加上一個下劃線。|
#### 范例
Example #1 extract() 例子
~~~
<?php
/* 假定 $var_array 是 wddx_deserialize 返回的數組*/
$size = "large";
$var_array = array("color" => "blue",
"size" => "medium",
"shape" => "sphere");
extract($var_array, EXTR_PREFIX_SAME, "wddx");
echo "$color, $size, $shape, $wddx_size\n";
?>
~~~
輸出
~~~
blue, large, sphere, medium
~~~
- 目錄
- Array
- array_column()
- 數組和變量
- compact() 函數
- extract() 函數
- Url
- base64_encode — 使用 MIME base64 對數據進行編碼
- 圖像
- getimagesize()
- 隨機數
- getrandmax
- mt_getrandmax
- mt_rand
- rand
- empty函數
- exec()函數
- 權限修改
- 可變函數
- 函數閉包
- 報警級別
- 持續函數
- 自定義
- 字符處理
- 中文首字母
- 隨機字符串
- url函數
- parse_url_param
- 頁面采集
- 簡單采集
- Referer采集
- CURL
- 發送json數據
- Curl多線程
- 文件處理
- 遞歸刪除
- 圖片顯示
- 類方法
- 保留字
- 檢查類文件名稱
- Cookie
- 數組
- 數學函數
- 第三方函數庫
- 精度計算
- BC Math
- 計算執行時間
- 日期時間
- 時間戳
- header
- 調試函數
- get_class
- get_class_methods
- 數組函數
- array_intersect_key()
- 二維數組
- Base64編碼
- URL安全
- 加密擴展
- Hash函數
- hash_file
- hash_hmac
- hash_algos
- 文件讀寫
- is_writable()
- file_put_contents()