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


Is it possible to create a for loop inside an if condition?

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

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

你可以这样做:

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

尝试使用这个:

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

你可以试试:

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

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

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

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

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

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

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