这些不等同吗?
== SCRIPT A ==
if (file_exists($file) == false) {
return false;
}
== SCRIPT B ==
if(!file_exists($file)) {
return false;
}
答案 0 :(得分:7)
简单回答: Y E S
他们评价同样的事情。
第一个可能更适合这样:
if (file_exists($file) === false) { // === checks type and value
return false;
}
或者:
return file_exists($file);
答案 1 :(得分:2)
是的,file_exists返回一个布尔值,所以它是true或false。
所以你也可以返回file_exists($ file)......
答案 2 :(得分:1)
如果你进行布尔比较,那么你宁愿这样做:
if (file_exists($file) === false) {
return false;
}
使用===
运算符,以确保您收到的内容是 boolean 类型的变量,其值等于 false 。
答案 3 :(得分:1)
是
但是如果你愿意的话:
if (file_exists($file) === false) {
return false;
}
然后它将不同于:
if(!file_exists($file)) {
return false;
}
因为在第一种情况下它将检查函数返回的值是否与严格匹配到false
,在第二种情况下,函数返回的值将评估< / em>到布尔值。
修改强>
这是一般规则。
但是如果file_exists()
函数返回布尔值,则不需要求布尔值,因此您可以使用严格条件,这将具有相同的结果(但仅在您知道<的情况下/ em>该值可以是true
或false
。
答案 4 :(得分:1)
如果你问“===和==运算符之间有什么区别”,那么:
'==='是一种严格的比较,用于检查双方的类型。 '=='是一个'等价'比较运算符,如果认为有必要,会将任何一方强制转换为适当的类型。
要展开,'=='可用于检查'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