【问题标题】:declaring a big list of variables [duplicate]声明一大堆变量[重复]
【发布时间】:2013-12-19 17:58:32
【问题描述】:

我有一个很大的变量列表:

$variable_1 = $_POST['variable_1'];
$variable_2 = $_POST['variable_2'];
$variable_3 = $_POST['variable_3'];
$variable_4 = $_POST['variable_4'];
...
..
.
$variable_86 = $_POST['variable_86'];

声明所有这些变量的最佳方式是什么?我应该像上面一样声明它们,我应该把它们放在一个数组中,我可以使用循环声明吗?

【问题讨论】:

    标签: php variables declare


    【解决方案1】:
    for ($i = 0; $i <= 86; $i++){
         if (isset($_POST["variable_$i"]))
         ${'variable'.$i} = $_POST["variable_$i"];
    }
    

    请参阅this 问题以了解动态变量名称。

    编辑:添加了isset 命令。 isset() 检查变量是否已经声明

    【讨论】:

    • 谢谢!这似乎有效,但它给了我一个Notice: Undefined index: 错误
    • 使用isset()检查变量是否定义。
    • 另一个快乐的结局:)
    • 那个循环几乎等于extract($_POST, EXTR_SKIP);
    • 唯一的一点是它不会影响其他 $_POST 变量,而 extract() 会:)
    【解决方案2】:

    您可以使用以下任何一种:

    foreach($var as $key=>$value) {
    echo $value;
    }
    

    和/或:

    foreach($_POST['var'] as $key=>$value) {
    echo $value;
    

    您也可以使用它,它将遍历所有 POST 值:

    foreach($_POST as $key=>$value) {
    echo "$key=$value";
    } 
    

    另外,假设$_POST['variable_1'] $_POST['variable_2']

    foreach($_POST as $k => $v) {
        if(strpos($k, 'variable_') === 0) {
            echo "$k = $v";
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-07-30
      • 2016-01-20
      • 1970-01-01
      • 1970-01-01
      • 2020-01-15
      • 1970-01-01
      • 2013-07-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多