我的一个阵列遇到了一个奇怪的问题。数组看起来像这样,然后我对其执行 print_r() :
Array
(
[id] => 1688
[pCid] => 1992
[category] => 177
[archive] => 0
[catid] =>
[pid] =>
[order_nr] => 1
[cOrder] => 1
[cSeo] => no-colour
[order_id] => 0
[price] => 8.99
[sale_price] => 7.99
[sale_expiry] =>
[oPrices] => 7.99
[member_price] => 6.99
[set] => 0
)
当我做一个简单的
if(isset($array['set']['stock'])){}
当 $array['set'] 当前等于 0 时,它返回 true。
var_dump(isset($array['set']['stock'])) //bool(true)
返回真
任何想法为什么会发生这种情况?
(我通过执行 is_array($array['set']) 检查解决了检查问题,但仍然不确定为什么 isset 不起作用)
我注意到您可以像这样复制相同的问题:
<?php
$colour = array();
$colour['set'] = '0';
var_dump(isset($colour['set']['stock'])); //will return true
?>