【发布时间】:2017-08-15 14:26:24
【问题描述】:
我(认为)我理解 php 的 extract() 函数的作用。但是,我在阅读一些代码时看到了这样的内容:
extract(['a' => '', 'b' => '', 'c' => 1, 'd' => 0]);
我的问题:
1:这在功能上是否不同于:
$a = ''; $b = ''; $c = 1; $d = 0;
2:使用extract()进行变量声明/赋值的原因是什么?
【问题讨论】:
-
我不建议使用它,因为您并不总是可以控制来自数组的内容(如果它是动态生成或加载的)。最好只使用数组索引(imo)。但最后,从数组中提取变量与声明它们几乎相同,但我看不出你为什么要以这种方式声明它们(如果这是唯一目的的话)。
-
@WillParky93,来自手册:'不要对不受信任的数据使用提取'。
-
重申上述内容 - 请不要在用户提供的数据上使用
extract。你基本上只是在重新实现register_globals,它在 15 多年前被默认禁用,因为这是一个糟糕的主意。 -
@Progrock 开始大量出汗我想我接下来要忙碌一周。
标签: php