課程推薦:

PHP extract() 函數

實例

<?php
$a = "Original";
將鍵值 "Cat"、"Dog" 和 "Horse" 赋值給變量 $a、$b 和 $c:
$my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse");;
extract($my_array)
?>

运行实例

echo "\$a = $a; \$b = $b; \$c = $c";

定義和用法

extract() 函數從數組中將變量導入到當前的符號表。

該函數使用數組鍵名作為變量名,使用數組鍵值作為變量值。針對數組中的每個元素,將在當前符號表中創建對應的一個變量。 第二個參數 type

用於指定當某個變量已經存在,而數組中又有同名人元素時,extract() 函數如何對待這樣的衝突。

該函數返回成功導入到符號表中的變量數目。

語法描述extract(extract_rulesextract(prefix,
) 參數
描述 array
extract_rules

必需。規定要使用的數組。

可能的值:

  • 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 时需要。如果附加了前缀后的结果不是合法的变量名,将不会导入到符号表中。

前缀和数组键名之间会自动加上一个下划线。

技术细节

返回值: 返回成功导入到符号表中的变量数目。
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 也包含数字变量。

更多实例

例子 1

使用所有参数:

<?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";
?>

运行实例