php提取函数获取变量值

时间:2015-06-10 05:04:50

标签: php

我有一个大的数据表格式。我喜欢动态设置数据库变量 在这种情况下,提交的表单输入值为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,但我的提取方法出了问题,因为它没有引用表单输入值?有什么建议?

1 个答案:

答案 0 :(得分:1)

不要将$_POST[…]表达式放在字符串中。只是做:

 $dec2 = (int) $_POST[$dec1];

您已经在那里汇编了数组索引$dec1。所以只需将它用于文字数组访问。之后$dec2包含所需的$ _POST输入值。

(现在你通常不想做的就是在那里使用extract()。只有展开小型应用内数组才有意义。对于更大的结构,只需保持并使用$nbs而不是数组。)