当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PHP extract()用法及代码示例


extract()函数是PHP中的内置函数。 extract()函数确实将数组转换为变量。也就是说,它将数组键转换为变量名,并将数组值转换为变量值。换句话说,我们可以说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 
      
    // input array 
    $state = array("AS"=>"ASSAM", "OR"=>"ORRISA", "KR"=>"KERELA"); 
      
    extract($state); 
      
    // after using extract() function 
    echo"\$AS is $AS\n\$KR is $KR\n\$OR is $OR"; 
      
?>

输出:

$AS is ASSAM
$KR is KERELA
$OR is ORRISA

示例2

<?php 
      
    $AS="Original"; 
      
    $state = array("AS"=>"ASSAM", "OR"=>"ORRISA", "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 ORRISA 
$dup_AS = ASSAM

参考:
http://php.net/manual/en/function.extract.php



相关用法


注:本文由纯净天空筛选整理自sid4321大神的英文原创作品 PHP | extract() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。