是否可以在if条件中创建for循环?

时间:2014-12-14 08:17:14

标签: php if-statement for-loop

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

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

5 个答案:

答案 0 :(得分:0)

你可以这样做:

// 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
}

答案 1 :(得分:0)

尝试使用:

$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
}

答案 2 :(得分:0)

您可以尝试:

<?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
}

答案 3 :(得分:0)

我很惊讶,经过三次回答,没有一个正确的答案。它应该是:

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

许多变化都是可能的,但是你可以在一次积极的情况下真正打破。

答案 4 :(得分:0)

是的,一个if-condtional中可能有一个循环。您可以使用for循环,或者您可能会发现使用foreach循环更方便,如下所示:

<?php
if (isset($_POST) && $_POST != NULL ){

  foreach ($_POST as $key => $value) {

        // perform validation of each item
  }
}
?>

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