將鍵值"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 " ; ?>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 | 可選。如果extract_rules 參數的值是EXTR_PREFIX_SAME、EXTR_PREFIX_ALL、EXTR_PREFIX_INVALID 或EXTR_PREFIX_IF_EXISTS,則prefix 是必要的。 此參數規定了前綴。前綴和陣列鍵名之間會自動加上一個底線。 |
傳回值: | 傳回成功設定的變數數目。 |
---|---|
PHP 版本: | 4+ |
更新日誌: | extract_rules的值EXTR_REFS 是在PHP 4.3 中新增的。 extract_rules的值EXTR_IF_EXISTS 和EXTR_PREFIX_IF_EXISTS 是在PHP 4.2 新增的。自PHP 4.0.5 起,函數傳回成功設定的變數數目。 extract_rules的值EXTR_PREFIX_INVALID 是在PHP 4.0.5 中新增的。自PHP 4.0.5 起, extract_rules的值EXTR_PREFIX_ALL 也包含數字變數。 |
使用所有的參數:
<?php$a = "Original";$my_array = array("a" => "Cat", "b" => "Dog", "c" => "Horse");extract($my_array, EXTR_PREFIX_SAME, "dup");echo "$a = $a; $b = $b; $c = $c; $dup_a = $dup_a";?>