你一定会,便是用下标$arr[0],或者键名嘛$arr['b']。
调用键名这种情形在PHP里非常普遍,像是从数据库直接取来的成员都是数组加字段名。
但是你从来没以为自己的代码有些怪怪的?

奇怪而正常的代码
现在我要循环一个数组,还要用它里边的成员,但是数组本身便是一个单词(为了让代码易懂)。
这个长单词再加上比较长的键名,觉得彷佛乱乱滴啊!
比如我随便写点儿代码,这是我们可能常常碰着的:
//我只是大略地用if判断两个值相加是否大于总分,可是数组名加键名看起来超蛋痛有没有
//……好缭乱,猛一看还以为我写了个操作系统
if( $students['score'] + $students['last_score'] > $students['total_score']){
return;
}
如何让代码快乐?唯有extract以上情形,你只须要提前作一个这样的操作:extract($students)
于是代码就清爽了一个数量级:
extract($students)
if( $score + $last_score > $total_score ){
return;
}
以是,extract()的浸染呢,便是将关联数组中的键名当作变量名,把数组成员抽出来啦。
而我要给出的结论便是,操作关联数组,一定要有利用extract的意识!
把稳!
抽出的数组会覆盖同名变量,但覆盖的目标抽出的位置有关,比如在函数中利用,就只是覆盖临时的局部变量。
怎么说呢,应该紧张在函数中利用。
WHAT? 我不想覆盖已有变量!可以我的王,你只须要再加一个参数EXTR_SKIP,上边的例子里会是这么写:
extract($students, EXTR_SKIP);
其余再见告你一个小密秘我们还能用它天生统一前缀的变量,只要这样写:
extract($students, EXTR_PREFIX_ALL,'我是前缀');
//得到:$我是前缀score, $我是前缀$last_score, $我是前缀total_score
支持我,我会写更多直白有趣易学的或神级技能!支持我的办法是转载或点赞!
加入我的新群让我带你飞:129120971