![](/img/trans.png)
[英]What is the difference between an if (true)/else (false) and a if(!true) in php?
[英]What is the difference between (if (x == y) return true, else false) and (if (x != y) return false, else true)?
if($send != true)
{
echo "Error Sending Email: ". $send->message;
return false;
}
else
{
echo "Mail Sent";
return true;
}
我現在正在學習PHP,並且正在努力理解為什么以這種方式設置此代碼。 上面的代碼和這個之間有什么區別:
if($send == true)
{
echo "Mail Sent";
return true;
}
else
{
echo "Error Sending Email: ". $send->message;
return false;
}
在我看來,他們會做同樣的事情,而且我想不出為什么要在另一個上使用一個的原因。 只是偏愛,還是我錯過了什么? 我是一個初學者,因此任何輸入將不勝感激。
沒有區別,大多數情況下您可以做任何喜歡的事情。
請記住,您不需要將布爾值與true
和false
進行比較,因為它們已經可以滿足條件了。 例如
if ($send) {
echo "Mail Sent";
return true;
} else {
echo "Error Sending Email: ". $send->message;
return false;
}
您也可以像這樣返回$send
值
if ($send) {
echo "Mail Sent";
} else {
echo "Error Sending Email: ". $send->message;
}
return $send;
當您選擇使用哪種順序時,我建議考慮哪種順序更易於閱讀和理解。
ps PHP中的一個重要主題是類型雜耍 PHP會自動將不同的類型轉換為所需的任何類型。 只需閱讀此內容,並在進行不同的條件檢查時記住。 有時這可能很棘手。
pps我的馬丁·福勒(Martin Fowler)有一本很棒的書-重構:改進現有代碼的設計它涵蓋了這樣的問題-如何組織代碼,進行條件檢查的最佳方法是什么等。嗯,這不是唯一的書主題,但這是我想到的第一個主題。 這可能是有爭議的,並不是所有人都遵循他的建議,但這是您可能想知道的事情:)
我更喜歡先進行錯誤驗證,這樣我就不必將錯誤驗證后的所有內容包裝到其自己的獨立條件中。
考慮以下:
if(!$send) {
echo "Error Sending Email: ". $send->message;
return false;
}
echo "Mail Sent";
return true;
對我來說,這更容易閱讀,並且在處理多個驗證條件時也變得更容易管理。 剛開始時就將所有驗證條件都扔進去了,那么您就大吃一驚(假設發生錯誤時,您退出函數)。 一旦通過每一個驗證檢查,它就順手推開。
然而,主要的收獲是沒有“正確”的答案。 嚴格來說,這是一個優先事項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.