記錄一次數字和字串比較時候犯的錯誤

阿隆索逃跑了發表於2020-03-05

請看如下程式碼

$app_name=$request->input('app_name',0);
if($app_name=='MyName'){
    echo 'true';
}else{
    return 'false';
}

輸出結果

結果為 true

分析

我們可能會覺得奇怪,明明這兩個不相等,為什麼會輸出 true呢,這裡這段程式碼犯了一個低階錯誤,當app_name 引數不傳遞的時候,那麼預設的app_name變數值為0.
php中數字和字串進行比較時,當這個字串是一個無法轉換為數字的字串,它就會被強制轉化為數字,結果總是為0,所以我們就知道了原因了。

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章