當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。