PHP extract 將數組拆分成多個變數的函數

來源:互聯網
上載者:User

extract()函數文法:
int extract( array $var_array [, int $extract_type = EXTR_OVERWRITE [, string $prefix ]] )
功能: extract()函數提取關聯陣列(對數字索引數組無效)每對key和value,產生以key為變數名、value為對應值的多組新變數。 複製代碼 代碼如下:<?php
$size = "old size"; //注意最後size變數的值。
$a = array(
"color" => "red",
"size" => "XXL",
"price" => "53");
extract($a);
echo "color = $color<br />";
echo "size = $size<br />";
echo "price = $price<br />";
?>

結果為:

color = red
size = XXL
price = 53

通過上例發現$size的值為XXL,而不是之前的”old size”,說明預設情況下當數組中的key與已有的變數衝突時,將覆蓋原來的變數。

繼續介紹extract函數的後兩個選擇性參數。

第二個參數$extract_type是用來控制當發生衝突時的處理方法,可能的值為:

EXTR_OVERWRITE : 衝突時覆蓋已有的變數,預設值。
EXTR_SKIP : 不覆蓋已有的變數,即不在產生該key和value對的變數。
EXTR_PREFIX_SAME : 衝突時,產生的新變數名加一個前置詞字元串,其值由第三個參數指定。
EXTR_PREFIX_ALL : 對所有產生的新變數名加一個前置詞字元串,其值由第三個參數指定。
EXTR_PREFIX_INVALID : 對key的值換為變數名時無效時(如key第一個字元為數字,而變數名要求第一個字元不能為數字),在變數名加一個前置詞字元串,其值由第三個參數指定。
EXTR_IF_EXISTS : 只取出之前已經存在的變數。
EXTR_PREFIX_IF_EXISTS : 對EXTR_IF_EXISTS取得的變數,在其變數名加一個前置詞字元串,其值由第三個參數指定。
EXTR_REFS : 以引用的方式提取變數,說明提取變數的值發生改變會影響原數組的值。

注意:在變數名加前置詞字元串時,新的變數名為 PREFIX_key,而不是PREFIXkey。

複製代碼 代碼如下:<?php
$a = array(
"color" => "red",
"size" => "XXL",
"price" => "53");
extract($a,EXTR_PREFIX_ALL,"SC");
echo "color = $SC_color<br />";
echo "size = $SC_size<br />";
echo "price = $SC_price<br />";
extract($a,EXTR_REFS);
$color="green";
echo $a['color']; //查看原數組的值
?>

結果為:
color = red
size = XXL
price = 53
green

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.