我讀this question,看到這一行:在php中將變量轉換爲布爾值的最佳方式是什麼?
if ($a == $b) { return true } else { return false }
它使我想知道,什麼是投未知類型的變量的最佳方法(可能是字符串,可以是int,誰知道誰關心?)到布爾?
當然,if ($var) { return true; } else { return false; }
會訣竅,但我認爲return $var ? true : false;
可能會更好。
對於這個問題:
return $var && true
return $var || false
return !empty($var)
都可能會更好,但有投爲bool一個最佳方式是什麼?更重要的是,最好的是什麼?
編輯澄清:
這是沒有用的是中投爲布爾的方式的綜合列表的意圖寫的。我的問題是明確鑄造。之前我瞭解empty
我用isset($var) && $var
,因爲它會阻止對未聲明的變量所引發的錯誤。現在我使用!empty($var)
,因爲輸入的速度更快。
!empty
具有不發生任何E_NOTICE
錯誤時(變量)未定義的(dis)優勢。如果你正在檢查$_GET
或$_SESSION
變量,對於大多數其他變量,我認爲這可能被認爲是不好的,因爲它會隱藏變量未初始化的地方,它應該已經初始化。
我很好奇其他開發人員是否有另一種做法,我並不知道 。
我會感興趣爲什麼你認爲有一個最好的辦法?例如,我不認爲有*最好的代碼*。當然,你可以在某種程度上找到客觀的標準,但是它一度變得主觀。 – 2011-02-04 01:02:47
@Felix Kling,這是一個很主觀的問題,我不想使用* best *,但是我發現很難想出一些很好的指標來判斷像布爾鑄造這樣簡單的事情:最快嗎?幾乎不重要。打字最短?可讀性? – zzzzBov 2011-02-04 16:52:21
出於興趣,我[跑了一個快速測試](https://eval.in/431853)看看哪個更快,並且使用`(bool)`明確地類型化它一直更快。 – Styphon 2015-09-11 14:34:36