簡體   English   中英

(如果(x == y)返回true,否則返回false與(如果(x!= y)返回false,否則返回true)有什么區別?

[英]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;
    }

在我看來,他們會做同樣的事情,而且我想不出為什么要在另一個上使用一個的原因。 只是偏愛,還是我錯過了什么? 我是一個初學者,因此任何輸入將不勝感激。

沒有區別,大多數情況下您可以做任何喜歡的事情。

請記住,您不需要將布爾值truefalse進行比較,因為它們已經可以滿足條件了。 例如

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.

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