数组分解为变量,要用extract()函数吗

发布于 2022-09-13 01:03:12 字数 283 浏览 30 评论 0

if (is_array($length)) {
    foreach ($length as $key => $value) {
        $$key = $value;
    }
}

extract($length, EXTR_PREFIX_ALL,'prefix_');

就是把数组中的键名,用作变量名,变量值为数组的键值。
上面哪个比较好用?
还有别的好的么?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

潇烟暮雨 2022-09-20 01:03:12

两者之间一定要选一个的话,那肯定是 extract ,且应该结合实际情况,填充其提供的第二个 flags 、第三个参数 prefix。

但是实际并不建议使用这种方式,其能会存在一些问题:

  • 1、可能会存在意外的变量污染。比如 extract 的默认行为是覆盖已存在的,这样在一些场景会存在安全问题,即使你提供了 prefix ,也还是有可能。
  • 2、可能会不符合预期,如 extract 的第二个参数有丰富的设定,比如不覆盖、或者当重复是使用 prefix 参数,这些可能存在一些不符合预期的行为。
  • 3、开发过程中不可验证性,对于开发过程中,对于这种情况很容易造成开发人员、开发工具无法理解,且现代化 IDE 也无法对此类情景进行提示、纠错等。

对此,若非必要,应该尽量避免使用这类行为。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文