检查值是否为 null 或 false​

检查值是否为 null 或 false​

检查值是否为 null 或 false ​使用 === 操作符检查 null 和 false 布尔值 ​PHP 的松散类型系统提供了许多不同的方式来检查变量的值。然而这也带来了很多问题。使用 == 来检查值是否为 null 或 false,如果值实际上是空字符串或 0,可能会返回假阳性(true)结果。isset() 检查变量是否具有非 null 的值,但不会检查布尔 false。

is_null() 函数可以准确检查值是否为 null,is_bool() 函数检查它是否为布尔值(如 false),但还有一个更好的选择:=== 操作符。=== 检查值是否完全相同,这在 PHP 的松散类型世界中与相等是不同的概念。它也比 is_null() 和 is_bool() 稍快一些,而且比使用函数进行比较看起来更美观。

示例 ​php

$x = 0;

$y = null;

// $x 是 null 吗?

if($x == null){

print('糟糕!$x 是 0,不是 null!');

}

// $y 是 null 吗?

if(is_null($y)){

print('很好,但可以更快。');

}

if($y === null){

print('完美!');

}

// 字符串 abc 包含字符 a 吗?

if(strpos('abc', 'a')){

// 注意!strpos 返回 0,表示它希望返回第一个字符的位置。

// 但 PHP 将 0 解释为 false,所以我们永远不会到达这个打印语句!

print('找到了!');

}

// 解决方案:使用 !==(=== 的反面)来检查 strpos() 返回 0 还是布尔 false。

if(strpos('abc', 'a') !== false){

print('这次真的找到了!');

}

?>注意事项 ​在测试可能返回 0 或布尔 false 的函数(如 strpos())的返回值时,始终使用 === 和 !==,否则你会遇到问题。

延伸阅读 ​PHP 手册:比较操作符Stack Overflow:is_null() vs ===

相关推荐

迷你世界飞机怎么做可以飞的 飞机建造教程和步骤详解
《网易奇遇俱乐部》在哪 怎么进
19天漫画,19天漫画全集,19天漫画免费在线观看
蒹葭描写的什么季节?