我有一个大的数据表格式。我喜欢动态设置数据库变量 在这种情况下,提交的表单输入值为99
$nbs = array();
foreach ($rows as $r) {
$dec1 = 'q' . $r["sort"] . 'z1';
$dec2 = '(int) $_POST["q' . $r["sort"] . 'z1"]';
$nbs[$dec1] = $dec2;
}
extract($nbs);
这会创建以下内容:
$q1000z1 = (int) $_POST[q1000z1];
var_dump($q1000z1);
输出:字符串(27)"(int)$ _POST [" q100000z1"]"
但如果我写代码
$q1000z1 = (int) $_POST[q1000z1];
var_dump($q1000z1);
输出:99
我喜欢99,但我的提取方法出了问题,因为它没有引用表单输入值?有什么建议?
答案 0 :(得分:1)
不要将$_POST[…]
表达式放在字符串中。只是做:
$dec2 = (int) $_POST[$dec1];
您已经在那里汇编了数组索引$dec1
。所以只需将它用于文字数组访问。之后$dec2
包含所需的$ _POST输入值。
(现在你通常不想做的就是在那里使用extract()
。只有展开小型应用内数组才有意义。对于更大的结构,只需保持并使用$nbs
而不是数组。)