【问题标题】:Is it possible to create a for loop inside an if condition?是否可以在 if 条件中创建 for 循环?
【发布时间】:2014-12-14 08:17:13
【问题描述】:

我需要检查是否设置了一些文本区域,但可能有很多。我想检查它们中的每一个是否都设置在带有 for 循环的 if 语句中。

if(//for loop here checking isset($_POST['item'.$i])  )

【问题讨论】:

  • 最好的方法是在 if 语句之前执行循环,并为 isset 检查的结果分配一个布尔值。然后在 if 语句中使用 bool
  • 完全可以,试试看
  • 你尝试的时候发生了什么?是什么让你相信这是不可能的?
  • 你需要先执行循环,然后检查循环内的条件,就这么简单
  • 在 for 循环中尝试您的代码

标签: php if-statement for-loop


【解决方案1】:

你可以这样做:

// Assume all set
$allSet = true;
// Check however many you need
for($i=0;$i<10;$i++) {
    if (!isset($_POST['item'.$i])) {
        $allSet=false;   // If anything is not set, flag it and bail out.
        break;
    }
}

if ($allSet) {
  //do stuff
} else {
  // do other stuff
}

如果您只有几个,或者它们不是连续的,则不需要循环。你可以这样做:

if (isset($_POST['a'], $_POST['d'], $_POST['k']....)) {

// do stuff if everything is set

} else {
// do stuff if anything is not set
}

【讨论】:

    【解决方案2】:

    尝试使用这个:

    $post=$_POST;
    foreach($post as $key=>$value){
    if (isset($value) && $value !="") {
    
    // do stuff if everything is set
    
    } else {
    // do stuff if anything is not set
    }
    

    【讨论】:

      【解决方案3】:

      你可以试试:

      <?php
      $isset = true;
      $itemCount = 10;
      for($i = 0; $i < $itemCount && $isset; $i++){
          $isset = isset($_POST['item'.$i]);
      }
      
      if ($isset){
          //All the items are set
      } else {
          //Some items are not set
      }
      

      【讨论】:

        【解决方案4】:

        我很惊讶在三个答案之后,没有一个正确的答案。应该是:

        $success = true;
        for($i = 0; $i < 10; $i++)
        {
          if (!isset($_POST['item'.$i]))
          {
            $success = false;
            break;
          }
        }
        if ($success)
        {
           ... do something ...
        }
        

        许多变化是可能的,但你真的可以在一个积极的之后打破。

        【讨论】:

        • 有趣的是,当这里已经有两个几乎相同的答案时,您现在应该回答这个问题。
        • 对不起,不,他们改变了答案......它发生了,没问题。
        【解决方案5】:

        是的,一个 if 条件语句中可能有一个循环。您可以使用 for 循环,也可以使用 foreach 循环更方便,如下所示:

        <?php
        if (isset($_POST) && $_POST != NULL ){
        
          foreach ($_POST as $key => $value) {
        
                // perform validation of each item
          }
        }
        ?>
        

        if 条件基本上测试表单是否已提交。它不会阻止提交空表单,这意味着必须检查任何必需的数据以验证用户是否提供了信息。请注意,$key 在循环迭代时包含每个字段的名称。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-04-10
          • 2021-04-09
          • 2018-08-10
          • 1970-01-01
          • 2012-08-18
          相关资源
          最近更新 更多