PHP中 0、false、null、"" 知识点回顾

闲来无事回顾一下 面试经常出现的 null、0、false、‘’ 比较问题

测试代码

//test.php
echo '0 == false: ';
var_dump(0 == false);
echo '0 === false: ';
var_dump(0 === false);
echo "\n";
echo '0 == null: ';
var_dump(0 == null);
echo '0 === null: ';
var_dump(0 === null);
echo "\n";
echo 'false == null: ';
var_dump(false == null);
echo 'false === null: ';
var_dump(false === null);
echo "\n";
echo '"0" == false: ';
var_dump("0" == false);
echo '"0" === false: ';
var_dump("0" === false);
echo "\n";
echo '"0" == null: ';
var_dump("0" == null);
echo '"0" === null: ';
var_dump("0" === null);
echo "\n";
echo '"" == false: ';
var_dump("" == false);
echo '"" === false: ';
var_dump("" === false);
echo "\n";
echo '"" == null: ';
var_dump("" == null);
echo '"" == null: ';
var_dump("" === null);

测试结果

→ php test.php
0 == false: bool(true)
0 === false: bool(false)

0 == null: bool(true)
0 === null: bool(false)

false == null: bool(true)
false === null: bool(false)

"0" == false: bool(true)
"0" === false: bool(false)

"0" == null: bool(false)
"0" === null: bool(false)

"" == false: bool(true)
"" === false: bool(false)

"" == null: bool(true)
"" === null: bool(false)

一起看看官方解释

PHP中 0、false、null、

顺便贴一下比较运算符

如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换为数值并且比较按照数值来进行。此规则也适用于 switch 语句。当用 === 或 !== 进行比较时则不进行类型转换,因为此时类型和数值都要比对。
PHP中 0、false、null、
PHP官方文档

测试代码

    $a1 = null;
    $a2 = false;
    $a3 = 0;
    $a4 = '';
    $a5 = '0';
    $a6 = 'null';
    $a7 = array();
    $a8 = array(array());
    echo empty($a1) ? 'true' : 'false';   // true
    echo empty($a2) ? 'true' : 'false';   // true
    echo empty($a3) ? 'true' : 'false';   // true
    echo empty($a4) ? 'true' : 'false';   // true
    echo empty($a5) ? 'true' : 'false';   // true
    echo empty($a6) ? 'true' : 'false';   // false
    echo empty($a7) ? 'true' : 'false';   // true
    echo empty($a8) ? 'true' : 'false';   // false

你可能感兴趣的:(PHP,PHP,运算,null,==,'')