的是這兩種檢查的區別?哪種類型檢查的正確方式稱爲失敗並返回false的函數或方法?
if (!is_dir($path)) {...}
或
if (is_dir($path) === false) {...}
的是這兩種檢查的區別?哪種類型檢查的正確方式稱爲失敗並返回false的函數或方法?
if (!is_dir($path)) {...}
或
if (is_dir($path) === false) {...}
$!如果$ a設置爲0,一個爲真,或者如果$ a未設置。三重等號嚴格檢查錯誤,而不僅僅是空值。
===
運算符是「相同值和相同類型」的比較。因此$foo === false
只有在$foo
已經是bool
類型等於false的情況下才爲真,而!$foo
將根據$foo
的類型執行不同的操作(例如,如果$foo
是對象或資源,則它將檢查它是否爲空值。如果它是一個字符串,那麼它會檢查null(我認爲它也是一個空字符串,但是我不確定)如果它是一個整數,那麼它會檢查它是否爲零基本上它的作用類似於C的!
運算符,加入bool類型(其中,布爾值真的int
值)。
在代碼中,這兩個示例是「正確的」,儘管第一示例中,使用操作者!
,是最簡潔的,並應是優選的。
(!is_dir($path)){...}
IF is_dir($ PATH)是EQUAL爲false。
(is_dir($path) === false){...}
IF is_dir($ PATH)是IDENTIFCAL爲false。這是更多的顯式意義上說,is_dir($ path)的結果務必是一個布爾FALSE值。沒有其他人會做。
運行這個例子:
<?php
$var = 0;
if($var == false){
echo 'Var is EQUAL to FALSE.';
}
if($var === false){
echo 'Var is IDENTICAL to FALSE.';
}
?>
閱讀上比較運營商here。
我覺得通過舉一些例子會更容易理解(你需要在命令提示符/終端中執行php命令) !不是邏輯運算符,它是由php文檔定義爲「!$ a有Result TRUE,如果$ a不是TRUE。「
php -r "$a=NULL; $b = !$a; var_dump($b);"
返回布爾(真)
php -r "$a=''; $b = !$a; var_dump($b);"
返回布爾(真)
php -r "$a=array(); $b = !$a; var_dump($b);"
返回布爾(真)
php -r "$a=false; $b = !$a; var_dump($b);"
返回布爾(真)
php -r "$a=0; $b = !$a; var_dump($b);"
返回布爾(真)
php -r "$a=0.0; $b = !$a; var_dump($b);"
個返回布爾(真)
php -r "$a='0'; $b = !$a; var_dump($b);"
返回布爾(真)
雖然$一個===虛假僅當$ a是實際工作bollean,其價值將是真實的是虛假的(所有其他先例的例子將是錯誤的!運營商)
php -r "$a=false; $b = $a === false; var_dump($b);"
返回布爾(真)
在您的例子只是用不操作!因爲你不需要檢查is_dir結果的類型。