2011-05-17 65 views

回答

7

平原答案:Ÿ(E S)

他們評價同一件事。

這第一個可能是更好的適合這樣的:

if (file_exists($file) === false) { // === checks type and value 
    return false; 
} 

OR:

return file_exists($file); 
2

是,file_exists返回一個布爾值,所以它的真或假。使用===操作,以確保

if (file_exists($file) === false) { 
    return false; 
} 

,所以你可以返回file_exists($文件),以及...

1

如果您正在布爾比較,那麼你寧願做這個您收到的是布爾型和相當於false的變量。

+0

好點,但在這種情況下不相關,因爲file_exists只返回一個布爾開頭。 – 2011-05-17 21:52:30

1

是的。

但是如果你會使用:

if (file_exists($file) === false) { 
    return false; 
} 

那就不一樣:

if(!file_exists($file)) { 
    return false; 
} 

,因爲在第一種情況下,將檢查由函數的返回值是否匹配嚴格false,在第二種情況下,函數返回的值將是,將評估爲布爾值。

編輯:

也就是說一般規則。

但在file_exists()函數,返回布爾值,評估布爾的情況下是沒有必要的,因此,你可以使用嚴格的條件,這將有同樣的結果(但只有在情況下,你知道值將是要麼truefalse

1

如果你問「什麼是===與==操作符之間的區別」,那麼:

「===」是一個比較嚴格,檢查各類兩側。 '=='是一個'相當於'的比較運算符,可以將任意一邊投射到相應的typ如果認爲有必要。

要展開,'=='可用於檢查'falsey'值,'==='可用於檢查完全匹配。

if (1 == TRUE) echo 'test'; 
>> "test" 

if (1 === TRUE) echo 'test'; 
>> 

如果你問,如果有你的兩個代碼塊之間的任何功能性/實用性差則沒有,有沒有,你應該返回這樣:return file_exists($file);

值得一讀: http://php.net/manual/en/language.operators.comparison.php