PHP提取EXTR_OVERWRITE,是否只有在存在冲突的情况下才能工作?
extract(array_map($myclass->trim_value, $_POST), EXTR_OVERWRITE, "var_");
但我注意到,如果我发布$_POST['id']
,我会得到$id,而不是$var_id
这是否意味着php会自动发现冲突并仅在该场景中应用规则?我还注意到我的trim_value似乎不起作用。。。我做错了什么?
是的,它会自动检测是否发生碰撞,您也可以在手册中阅读:http://php.net/manual/en/function.extract.php
还有一句话:
额外写入: 如果发生冲突,请覆盖现有变量。
如果你想将其用于所有变量,请使用:
extract($_POST, EXTR_PREFIX_ALL, "var_");