簡體   English   中英

向if語句提供許多參數的最佳方法是什么?

[英]What is the best way to supply many arguments to an if statement?

我創建了一個包含多個用戶輸入的表單,但任務繁瑣,需要在提交之前檢查每個單獨的輸入是否不為空。 有沒有一種更快的方法(例如使用數組)將所有參數列出到if語句中?

目前,我的代碼看起來像這樣,但是如果可能的話,我希望它在將來變得更有效率,就像我要添加更多的輸入一樣。

<form action="sign-up.php" method="post" autocomplete="off" >
Name:<input type="text" name="name" />
Username:<<input type="text" name="username"  /><br />
Password:<input type="password" name="password1" /><br />
Re-type Password:<input type="password" name="password2"  /><br />
Email:<input type="text" name="email"  />
Address:<input type="text" name="address"  />
Post Code:<input type="text" name="postcode"  />
City:<input type="text" name="city"  />
<input class="submit" type="submit" value="sign up" />
</form>

<?php
if (!empty($_POST['name']) 
&& !empty($_POST['username']) 
&& !empty($_POST['password1']) 
&& !empty($_POST['password2']) 
&& !empty($_POST['email'])   
&& !empty($_POST['address'])
&& !empty($_POST['postcode']) 
&& !empty($_POST['city']) )
{
echo "information has been submitted";
}
else {
echo "please fill in all fields!"
}

?>

如果您有任何建議,請發表評論。

因此,這將循環遍歷$ _POST值並檢查它們是否為空。 如果發現一個為空,則會將$hasErrorOccurred設置為true。 下面的if statement將確定輸入檢查是否成功。

    $hasErrorOccurred = false;

    foreach ($_POST as $key => $value) {
        if (empty($_POST[$key])) {
            $hasErrorOccurred = true;

            break;
        }
    }

    if ($hasErrorOccurred) {
        // Your error code here.
    } else {
        // Your successful code here.
    }

閱讀材料:

break;

如果要為每個字段輸入分配變量,這就是我的方法。

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

 $$key = $_POST[$key];  //assigns input name to variable with the same name.

    }

if(!empty($$key)) {

//code if all fields are not empty  

}
else {

    echo "Please fill in all fields";

}

這是我嘗試在對Script47答案的注釋中描述的方式,以便可以更好地闡明我的觀點:

$requiredFields = ['name','username','password1','password2'];
foreach ($requiredFields as $field) {
    if (!array_key_exists($field, $_POST) || empty($_POST[$field])) {
        displayMissingFieldAlert($field);
    }
}
// do the submit etc.
...

這樣,您就可以捕獲某個字段是否被遺忘,拼寫錯誤或不在提交中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM