我遇到了一個奇怪的問題,其中一個數組。該陣列是這樣的話,我做的print_r()就可以了:isset在數組的父元素值爲字符串時返回true,數組
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
)
,當我做了simmple
當$數組[ '設置'] currentlly等於0if(isset($array['set']['stock'])){}
返回true 。
var_dump(isset($array['set']['stock'])) //bool(true)
返回true
任何想法,爲什麼會出現這種情況?
我注意到,你可以複製同樣的問題是這樣的(我做is_array($陣列[「設置」])檢查,但仍然不知道爲什麼不工作的isset解決支票簽發):
<?php
$colour = array();
$colour['set'] = '0';
var_dump(isset($colour['set']['stock'])); //will return true
?>
isset當我運行上面的代碼時返回false。 – liquorvicar
您使用的是什麼版本的PHP?我正在使用5.3.2,isset的行爲與預期相同。你也確定在進行isset檢查之前,數組的值不會改變嗎?也許你可以發佈一個更完整的代碼示例。 –
我的PHP版本是「PHP Version 5.3.5」 – Alex