我发现这只是一种不好的做法,因为它会导致许多变数,将来的维护者(或您自己在几周内)都不知道它们的来源。考虑这种情况:
extract($someArray); // could be $_POST or anythingecho $someVariable;
哪里
$someVariable来的?谁能告诉?
我看不出在从阵列中访问这些变量,他们开始在这个问题,那么你真的需要展示一个良好的情况下, 对
使用
extract()我认为这是值得的。如果您真的很担心要输入一些额外的字符,请执行以下操作:
$a = $someLongNameOfTheVariableArrayIDidntWantToType;$a['myVariable'];
我认为这里有关安全性的评论有些夸张。该函数可以使用第二个参数,该参数实际上可以使您对新创建的变量有相当好的控制,包括不覆盖任何现有变量(
EXTR_SKIP),仅覆盖现有变量(因此您可以创建白名单)(
EXTR_IF_EXISTS)或为变量添加前缀(
EXTR_PREFIX_ALL)。



