PHP extract 將數(shù)組拆分成多個(gè)變量的函數(shù)
更新時(shí)間:2010年06月30日 16:11:43 作者:
extract()函數(shù)提取關(guān)聯(lián)數(shù)組(對(duì)數(shù)字索引數(shù)組無(wú)效)每對(duì)key和value,生成以key為變量名、value為對(duì)應(yīng)值的多組新變量。
extract()函數(shù)語(yǔ)法:
int extract( array $var_array [, int $extract_type = EXTR_OVERWRITE [, string $prefix ]] )
功能: extract()函數(shù)提取關(guān)聯(lián)數(shù)組(對(duì)數(shù)字索引數(shù)組無(wú)效)每對(duì)key和value,生成以key為變量名、value為對(duì)應(yīng)值的多組新變量。
<?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 />";
?>
結(jié)果為:
color = red
size = XXL
price = 53
通過上例發(fā)現(xiàn)$size的值為XXL,而不是之前的”old size”,說明默認(rèn)情況下當(dāng)數(shù)組中的key與已有的變量沖突時(shí),將覆蓋原來(lái)的變量。
繼續(xù)介紹extract函數(shù)的后兩個(gè)可選參數(shù)。
第二個(gè)參數(shù)$extract_type是用來(lái)控制當(dāng)發(fā)生沖突時(shí)的處理方法,可能的值為:
EXTR_OVERWRITE : 沖突時(shí)覆蓋已有的變量,默認(rèn)值。
EXTR_SKIP : 不覆蓋已有的變量,即不在生成該key和value對(duì)的變量。
EXTR_PREFIX_SAME : 沖突時(shí),生成的新變量名加一個(gè)前綴字符串,其值由第三個(gè)參數(shù)指定。
EXTR_PREFIX_ALL : 對(duì)所有生成的新變量名加一個(gè)前綴字符串,其值由第三個(gè)參數(shù)指定。
EXTR_PREFIX_INVALID : 對(duì)key的值換為變量名時(shí)無(wú)效時(shí)(如key第一個(gè)字符為數(shù)字,而變量名要求第一個(gè)字符不能為數(shù)字),在變量名加一個(gè)前綴字符串,其值由第三個(gè)參數(shù)指定。
EXTR_IF_EXISTS : 只取出之前已經(jīng)存在的變量。
EXTR_PREFIX_IF_EXISTS : 對(duì)EXTR_IF_EXISTS取得的變量,在其變量名加一個(gè)前綴字符串,其值由第三個(gè)參數(shù)指定。
EXTR_REFS : 以引用的方式提取變量,說明提取變量的值發(fā)生改變會(huì)影響原數(shù)組的值。
注意:在變量名加前綴字符串時(shí),新的變量名為 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']; //查看原數(shù)組的值
?>
結(jié)果為:
color = red
size = XXL
price = 53
green
int extract( array $var_array [, int $extract_type = EXTR_OVERWRITE [, string $prefix ]] )
功能: extract()函數(shù)提取關(guān)聯(lián)數(shù)組(對(duì)數(shù)字索引數(shù)組無(wú)效)每對(duì)key和value,生成以key為變量名、value為對(duì)應(yīng)值的多組新變量。
復(fù)制代碼 代碼如下:
<?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 />";
?>
結(jié)果為:
color = red
size = XXL
price = 53
通過上例發(fā)現(xiàn)$size的值為XXL,而不是之前的”old size”,說明默認(rèn)情況下當(dāng)數(shù)組中的key與已有的變量沖突時(shí),將覆蓋原來(lái)的變量。
繼續(xù)介紹extract函數(shù)的后兩個(gè)可選參數(shù)。
第二個(gè)參數(shù)$extract_type是用來(lái)控制當(dāng)發(fā)生沖突時(shí)的處理方法,可能的值為:
EXTR_OVERWRITE : 沖突時(shí)覆蓋已有的變量,默認(rèn)值。
EXTR_SKIP : 不覆蓋已有的變量,即不在生成該key和value對(duì)的變量。
EXTR_PREFIX_SAME : 沖突時(shí),生成的新變量名加一個(gè)前綴字符串,其值由第三個(gè)參數(shù)指定。
EXTR_PREFIX_ALL : 對(duì)所有生成的新變量名加一個(gè)前綴字符串,其值由第三個(gè)參數(shù)指定。
EXTR_PREFIX_INVALID : 對(duì)key的值換為變量名時(shí)無(wú)效時(shí)(如key第一個(gè)字符為數(shù)字,而變量名要求第一個(gè)字符不能為數(shù)字),在變量名加一個(gè)前綴字符串,其值由第三個(gè)參數(shù)指定。
EXTR_IF_EXISTS : 只取出之前已經(jīng)存在的變量。
EXTR_PREFIX_IF_EXISTS : 對(duì)EXTR_IF_EXISTS取得的變量,在其變量名加一個(gè)前綴字符串,其值由第三個(gè)參數(shù)指定。
EXTR_REFS : 以引用的方式提取變量,說明提取變量的值發(fā)生改變會(huì)影響原數(shù)組的值。
注意:在變量名加前綴字符串時(shí),新的變量名為 PREFIX_key,而不是PREFIXkey。
復(fù)制代碼 代碼如下:
<?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']; //查看原數(shù)組的值
?>
結(jié)果為:
color = red
size = XXL
price = 53
green
相關(guān)文章
某大型網(wǎng)絡(luò)公司應(yīng)聘時(shí)的筆試題目附答案
網(wǎng)絡(luò)公司應(yīng)聘題目,主要包括php和javascript2008-03-03PHP簡(jiǎn)單實(shí)現(xiàn)歐拉函數(shù)Euler功能示例
這篇文章主要介紹了PHP簡(jiǎn)單實(shí)現(xiàn)歐拉函數(shù)Euler功能,簡(jiǎn)單說明了歐拉函數(shù)的概念、原理,并結(jié)合實(shí)例形式分析了php實(shí)現(xiàn)歐拉函數(shù)的相關(guān)操作技巧,需要的朋友可以參考下2017-11-11php通過curl方式實(shí)現(xiàn)發(fā)送接收xml數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了php如何通過curl方式實(shí)現(xiàn)發(fā)送接收xml數(shù)據(jù),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11本地機(jī)apache配置基于域名的虛擬主機(jī)詳解
以下是對(duì)本地機(jī)apache配置基于域名的虛擬主機(jī)進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來(lái)參考下2013-08-08PHP 清空varnish 緩存的詳解(包括指定站點(diǎn)下的)
本篇文章是對(duì)清空varnish的緩存(包括指定站點(diǎn)下的)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06php下刪除一篇文章生成的多個(gè)靜態(tài)頁(yè)面
php自定義函數(shù)之刪除一篇文章生成的多個(gè)靜態(tài)頁(yè)面,可能有多頁(yè)的文章,都是需要考慮到的。2010-08-08