PHP - unserialize表示为空,但包含一个数组


PHP - unserialize is said null but contains an array

为什么这样做:

$myarray = array();
$_SESSION['myarray'] = serialize($myarray);
$myarray = unserialize($_SESSION['myarray']);
if ($myarray == null) {
    print_r($myarray);
    print("<br>no data");
    exit;
}

给出如下结果:

Array ( )
no data

如何我的var可以包含一个数组和测试TRUE为null ?

类型杂耍负责。空数组和null都等于false。因为您使用了==比较运算符,所以类型没有被比较,它们被认为是相等的。如果使用===比较运算符,则空数组不等于null,因为If语句的计算结果为false。

演示

由于您正在使用的松散比较(==), $myarray == null$myarray == []相同,松散比较意味着仅比较值并且这些值都为空。要比较类型和值,请与===.

严格比较。

类型比较表,比较运算符