📜  PHP | extract()函数

📅  最后修改于: 2022-05-13 01:56:49.953000             🧑  作者: Mango

PHP | extract()函数

int extract($input_array, $extract_rule, $prefix)

参数:extract()函数接受三个参数,其中一个是强制性的,另外两个是可选的。所有三个参数描述如下:

  1. $input_array :此参数是必需的。这指定要使用的数组。
  2. $extract_rule :此参数是可选的。 extract()函数检查无效变量名以及与现有变量名的冲突。此参数指定如何处理无效和冲突的名称。此参数可以采用以下值:
    • EXTR_OVERWRITE:这条规则告诉如果有冲突,覆盖现有的变量。
    • EXTR_SKIP:这条规则告诉如果有冲突,不要覆盖现有的变量。
    • EXTR_PREFIX_SAME:这条规则告诉如果有冲突,则根据 $prefix 参数为变量名添加前缀。
    • EXTR_PREFIX_ALL:此规则告诉根据 $prefix 参数为所有变量名添加前缀。
    • EXTR_PREFIX_INVALID:此规则告诉仅根据参数 $prefix 为无效/数字变量名称添加前缀。
    • EXTR_IF_EXISTS:这条规则告诉只有当它已经存在于当前符号表中时才覆盖该变量,否则什么也不做。
    • EXTR_PREFIX_IF_EXISTS:此规则告诉仅当当前符号表中存在同一变量的非前缀版本时才创建带前缀的变量名称。
  3. $prefix :此参数是可选的。此参数指定前缀。前缀通过下划线字符自动与数组键分开。此外,仅当参数 $extract_rule 设置为 EXTR_PREFIX_SAME、EXTR_PREFIX_ALL、EXTR_PREFIX_INVALID 或 EXTR_PREFIX_IF_EXISTS 时才需要此参数。

返回值:extract()函数的返回值是一个整数,它表示从数组中成功提取或导入的变量的数量。
例子:

Input : array("a" => "one", "b" => "two", "c" => "three")
Output :$a = "one" , $b = "two" , $c = "three"
Explanation: The keys in the input array will become the 
variable names and their values will be assigned to these
new variables.

下面的程序说明了 extract() 在PHP中的工作:
示例 1

PHP
"ASSAM", "OR"=>"ORISSA", "KR"=>"KERELA");
     
    extract($state);
     
    // after using extract() function
    echo"\$AS is $AS\n\$KR is $KR\n\$OR is $OR";
     
?>


PHP
"ASSAM", "OR"=>"ORISSA", "KR"=>"KERELA");
     
    // handling collisions with extract() function
    extract($state, EXTR_PREFIX_SAME, "dup");
     
    echo"\$AS is $AS\n\$KR is $KR\n\$OR if $OR \n\$dup_AS = $dup_AS";
     
?>


输出:

$AS is ASSAM
$KR is KERELA
$OR is ORISSA

示例 2

PHP

"ASSAM", "OR"=>"ORISSA", "KR"=>"KERELA");
     
    // handling collisions with extract() function
    extract($state, EXTR_PREFIX_SAME, "dup");
     
    echo"\$AS is $AS\n\$KR is $KR\n\$OR if $OR \n\$dup_AS = $dup_AS";
     
?>

输出:

$AS is Original
$KR is KERELA
$OR is ORISSA 
$dup_AS = ASSAM

参考
http:// PHP.net/manual/en/函数.extract。 PHP