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

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;

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • foreach() | list() | extract | array_map() | array_walk()...
    彭晓华阅读 1,026评论 0赞 0
  • 什么是变量覆盖漏洞 自定义的参数值替换原有变量值的情况称为变量覆盖漏洞 经常导致变量覆盖漏洞场景有:$$使用不当,...
    nice_o阅读 17,054评论 5赞 2
  • /* 【数组函数】 */ //统计计算 count计算数组中的单元数目或对象中的属性个数 array_count_...
    Omit03阅读 426评论 0赞 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,213评论 19赞 139
  • 1、基本内容 range(low,high,[step]);函数,创建一个包含指定范围的元素的数组。参数step:...
    ManZb阅读 392评论 0赞 0

友情链接更多精彩内容