這種比較之間有差異嗎? 之間有什麼區別!和=== FALSE?類存在檢查比較
if (!class_exists($class)) {
require($class.'.php');
}
if (class_exists($class) === FALSE) {
require($class.'.php');
}
這種比較之間有差異嗎? 之間有什麼區別!和=== FALSE?類存在檢查比較
if (!class_exists($class)) {
require($class.'.php');
}
if (class_exists($class) === FALSE) {
require($class.'.php');
}
在這種情況下,沒有。
有些人認爲這是很好的編程風格,明確表明他們正在比較布爾值。個人...我不喜歡它,但我想更詳細的形式更明顯,因爲!在括號和其他垂直字符之間砸碎時,操作員不是可見的東西。
其實我覺得使用起來更好!那麼===假,只是不知道差異。感謝你們。 – Tux
是兩者是不同的東西:
PHP自動認爲0爲「假」和1爲「真」,所以當你永遠在這兩者有差別直接使用功能響應if條件內。
考慮一個函數,如果執行正確,則返回int數。它也可能是0。 但是,如果函數不符合要求,則返回false。
所以此時函數返回值0就是成功。事件雖然結果爲零。在此,如果你檢查這如果條件一樣
$return = someFunction();
if($return){
//code if ture
}
所以如果$收益爲0您如果代碼不會被連你的函數執行是正確的所以在這種情況下,你應該檢查像
$return = someFunction();
if($return !== FALSE){
//code if ture
}
執行
===和!==用於檢查響應是否完全匹配返回類型。
if('0' === 0)
將返回false 但
if('0' == 0)
將返回true ...
希望現在你的想法是清楚的。
檢查了這一點:
if('0' == 0){
echo 'Hi, I will be in screen :)';
}
if('0' === 0){
echo 'I will not be in screen :(';
}
我只是試圖清除之間的想法!和===錯誤 –
在這種情況下,毫無作爲'class_exists()'只會返回一個布爾值。請參閱['strpos()'](http://php.net/manual/en/function.strpos.php)上的說明,瞭解何時可能需要使用'=== false' – Phil
所以我可以使用任何這樣的class_exists()呢? – Tux
是的,任一測試都會得到相同的結果 – Phil