gpt4 book ai didi

php - extract() 有什么问题?

转载 作者:IT王子 更新时间:2023-10-29 01:06:03 27 4
gpt4 key购买 nike

我最近在读 this thread ,关于一些最糟糕的 PHP 实践。在第二个答案中,有一个关于 extract() 的使用的小型讨论,我只是想知道所有的愤怒是什么。

我个人用它来分割给定的数组,例如 $_GET$_POST,然后我会在其中清理变量,因为它们已方便地为我命名.

这是不好的做法吗?这里有什么风险?您对 extract() 的使用有何看法?

最佳答案

我发现这只是一种不好的做法,因为它会导致 future 的维护者(或几周后的你自己)不知道它们来自哪里的许多变量。考虑这种情况:

extract($someArray); // could be $_POST or anything

/* snip a dozen or more lines */

echo $someVariable;

$someVariable 是从哪里来的?谁能说出来?

我没有看到从它们开始的数组中访问变量的问题,所以你真的需要使用 extract() 提供一个很好的案例 for让我认为这是值得的。如果您真的担心输入一些额外的字符,那么只需这样做:

$a = $someLongNameOfTheVariableArrayIDidntWantToType;

$a['myVariable'];

我认为这里关于它的安全方面的评论有些夸大其词。该函数可以采用第二个参数,它实际上让您可以很好地控制新创建的变量,包括不覆盖任何现有变量(EXTR_SKIP),仅覆盖现有变量(因此您可以创建白名单)( EXTR_IF_EXISTS),或为变量添加前缀(EXTR_PREFIX_ALL)。

关于php - extract() 有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/829407/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com