我将尝试提取一个混合的关联数组,例如:
<pre>
<?php
bar();
function bar(){
$apple = 6;
$ball = 2;
$cat = 3;
$data = ["apple" => 1, $ball,$cat];
foo($data);
}
function foo($data){
extract($data);
echo "<br />apple:" . $apple;
echo "<br />ball:" . $ball;
echo "<br />cat:" . $cat;
}
?>
</pre>
< p > $data 数组可以是纯数字的、纯关联的或两者都有。如果数组元素缺少索引,则应该与变量相同。
$ball
和$cat
在作用域中已经被定义(在 extract 之前),因此它们仍然存在。这就是为什么它们在函数中无法工作的原因。当运行 extract 时,数组没有索引可以分配给变量。 - Twisty$cat
和$ball
的值与数组中的键0
和1
相同,但是extract
实际上跳过了数字索引。 - Elias Van Ootegemextract()
。迭代数组并手动收集数据到变量中,而不是使用extract()
来确保你获得值。 - Twisty$data
没有控制权,你可能需要获取一个映射数组,说明期望的变量顺序是什么...例如,“第一个值是APPLE,第二个是BALL,第三个是CAT”...然后使用这个映射数组手动提取数据... - Random