foreach声明没有检查所有条件

时间:2014-09-17 11:08:18

标签: php foreach

我是PHP的新手。我正在尝试检查某个表单中没有字段是空的,所以我使用了foreach语句,但它只是逐个检查而不是一次检查。

这是我的代码:

<?php

if (isset($_POST[submit])) {
    ValidateUser();
}

function ValidateUser() {
    $username = $_POST['username'];
    $password = $_POST['password'];
    $details = array($username, $password);

    foreach($details as $detail) {
        if (!empty($detail)) {
            echo "hurrayy";
        }
    }
}

?>

因此,当BOTH用户名和密码不为空时,不显示“hurrayy”,只要其中一个不为空,就会显示。请帮忙。

4 个答案:

答案 0 :(得分:1)

在邮件回显一次后添加break。它将停止foreach循环。

foreach($details as $detail) {
    if (!empty($detail)) {
        echo "hurrayy";
        break;
    }
}

答案 1 :(得分:1)

您无需将它们分配给数组并循环

function ValidateUser() {
    if(!empty($_POST['username']) AND !empty($_POST['password'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];
    echo "Hurray!";
    }
}

8行到5行,没有循环,也没有数组赋值。

答案 2 :(得分:0)

所以,只有当数组中的字段的 none 为空时,才显示“hurrayy”?你需要先检查它们然后再决定。

function ValidateUser() {
  $username = $_POST['username'];
  $password = $_POST['password'];
  $details = array($username, $password);

  $empty_field = false;

  foreach($details as $detail) {
    if (empty($detail)) {
        $empty_field = true;
    }
  }

  if (!$empty_field)
    echo "hurrayy";
}

答案 3 :(得分:0)

是的,它将输入if语句,因为$username$password被视为数组中的值,即使这两个值没有值。