php

extract()——遍历数组,把数组中的变量导入当前符号列表中

2017-05-19  本文已影响3人  彭晓华

extract()
把数组中的变量,导入<a href='http://www.jianshu.com/p/46f91cd5f67a'>当前符号列表</a>中;

基础语法:

int extract(array $array [,constant $flags [,str $prefix]])

array $array 被解析的数组;
constant $flags 解析的规则;
str $prefix 给变量添加前缀的字符串,前缀同键名之间用_ 下划线连接;
int 返回添加到<a href='http://www.jianshu.com/p/46f91cd5f67a'>当前符号列表</a>的变量数目;

语法结构1:

extract(array $array )

把数组中键名能够转为合法变量标识符所有元素,添加到<a href='http://www.jianshu.com/p/46f91cd5f67a'>当前符号列表</a>中,覆盖同名变量;

实例:

$a_bill_info = array('first_name'=>'bill','last_name'=>'gates','age'=>22,'job'=>'worker');

extract($a_bill_info);

echo $first_name.'<br/>'
    .$last_name.'<br/>'
    .$age.'<br/>'
    .$job;

#output : 
#bill
#gates
#22
#worker


语法结构2:
extract(array $array ,EXTR_SKIP)
提取数组中的变量到符号列表中,但是不覆盖已有变量;

实例:

$name= 'aa';
$a_tom_info = array('name'=>'tom','age'=>33);

$int = extract($a_tom_info,EXTR_SKIP);

echo $int.'<br/>'
    .$name;

#output  : 2
#aa


语法结构3:
int EXTRACT(array $array ,EXTR_PREFIX_SAME,string $prefix)

给同已有变量同名的键名,增加一个前缀,其他不增加前缀,
导出这些键名为变量,
覆盖同名的变量;

实例:

$name= 'aa';
$a_tom_info = array('name'=>'tom','age'=>33);

extract($a_tom_info,EXTR_PREFIX_SAME,'tom');

echo $name  ;
echo $tom_name;  

#output : aa;
#output :  tom;


语法结构4:

extract(array $array ,EXTR_PREFIX_ALL, str $prefix)

给键名添加前缀,把变量添加到当前字符列表中,如果有同名的覆盖同名的变量;

实例:

$a_bill_info = array('first_name'=>'bill','last_name'=>'gates','age'=>22,'job'=>'worker');

extract($a_bill_info,EXTR_PREFIX_ALL ,'bill')

echo $bill_first_name ;

#output: bill


语法结构5:
int extract(array $array ,EXTR_PREFIX_INVALID,string $prefix)

把键名添加到当前符号列表,
如果健民作为变量是一个非法的标识符的话,给这个键名添加一个前缀,在添加到当前符号列表;
如果当前符号列表有相同的变量名,那么覆盖这些变量;

实例:

$a_bill_info = array('1_name'=>'bill','last_name'=>'gates','age'=>22,'job'=>'worker');

extract($a_bill_info,EXTR_PREFIX_INVALID,'bill');

echo $bill_1_name;

#output : bill 

语法结构6:

extract(array $array ,EXTR_IF_EXISTS)

只提取当前符号列表中同名的变量;覆盖这些变量;

实例:

$first_name = 'tom';
$a_bill_info = array('first_name'=>'bill','last_name'=>'gates','age'=>22,'job'=>'worker');

$int = extract($a_bill_info ,EXTR_IF_EXISTS)

echo $first_name.'<br/>    
      .$int';

#output : bill
#1

语法结构7:

extract(array $array ,EXTR_PREFIX_IF_EXISTS ,str $prefix)

只提取数组中的键名同符号列表中变量同名的数组元素;添加前缀后,导入符号列表中;

实例:

$first_name = 'tom';
$a_bill_info = array('first_name'=>'bill','last_name'=>'gates','age'=>22,'job'=>'worker');

extract($a_bill_info,EXTR_PREFIX_IF_EXISTS ,'bill')

echo $first_ame.'<br/>'.$bill_first_name;

#output:
#tom
#bill

语法结构8:

extract(array $array,EXTR_REFS)

引用 提取数组中的所有变量,覆盖已有变量;

实例:

$a_bill_info = array('first_name'=>'bill','last_name'=>'gates','age'=>22,'job'=>'worker');
extract(|$a_bill_info,EXTR_REFS)
echo $first_name ;  
#output : bill

a_bill_info['first_name'] = 'bill_2';
echo $first_name ;
#output : bill_2;

上一篇 下一篇

猜你喜欢

热点阅读