[英]PHP If statement not working as I thought it should
我正在嘗試在表單上設置一些錯誤檢查,到目前為止,我有以下內容:
if (empty($fname)) {
$error = true;
$error_fname = "Please fill in your first name";
}else if (empty($lname)) {
$error = true;
$error_lname = "Please fill in your first name";
}
盡管在第一個if語句中將字符串分配給變量$ error_fname是,但在第二個else if語句中不執行任何操作,但不會將錯誤分配給變量。
有什么幫助嗎?
如果滿足第一個條件,就永遠不會拋出第二個條件,不要使用if,而是使用兩個if並且還將錯誤放入數組中,否則如果同時滿足兩個條件,則可能會覆蓋它
$error_lname = array();
if (empty($fname)) {
$error = true;
$error_lname[] = "Please fill in your first name";
}
if (empty($lname)) {
$error = true;
$error_lname[] = "Please fill in your last name";
}
如果您需要兩個單獨的錯誤,則可以使用不同的變量
if (empty($fname)) {
$error = true;
$error_fname = "Please fill in your first name";
}
if (empty($lname)) {
$error = true;
$error_lname = "Please fill in your last name";
}
因為當它的名字變為姓氏而不是姓氏時,一次您會得到一個條件為真.. look @ firstname為空,錯誤firsname為true,如果..這不是您所需要的示例代碼,則它不會為第二個分別給條件..
if (empty($fname)) {
$error = true;
$error_fname = "Please fill in your first name";
}
if (empty($lname)) {
$error = true;
$error_lname = "Please fill in your Last name";
}
$error=false;
if (empty($fname)) {
$error = true;
$errors []= "Please fill in your first name";
}
if (empty($lname)) {
$error = true;
$errors[] = "Please fill in your last name";
}
if($error)
print_r($errors);
如果刪除“ else”,則可以解決此問題:
if (empty($fname)) {
$error = true;
$error_fname = "Please fill in your first name";
}
if (empty($lname)) {
$error = true;
$error_lname = "Please fill in your last name";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.