即使是相對清楚地意識到PHP特殊性,下面strange behaviour仍然讓我感到困惑的今天:PHP array_key_exists - 鬆對某些類型的,嚴格的另一
// loose
$a = array(true => 'foo');
var_dump(array_key_exists(1, $a));
// strict
$a = array('7.1' => 'foo');
var_dump(array_key_exists('7.10', $a));
我想這可能是這種影響的技術原因,所以問題是,這個函數背後的過程是什麼造成某些類型的值比較鬆散,而其他類型則嚴格地進行比較?我並不抱怨這種行爲,但試圖理解這一點,所以「PHP糟糕」評論沒有意義。
數組鍵總是被轉換爲整數。我以爲你會被'echo'7.1'=='7.10';';) – meze 2012-08-10 16:45:21
弄糊塗我不確定你認爲什麼是奇怪的...... – BenOfTheNorth 2012-08-10 16:45:34
也許你可以在那裏添加腳本輸出?第一眼雖然:布爾作爲數組鍵?我不認爲這是ggonna以任何方式幫助!第二:7.10在7.1中不一樣 - 在''中聲明這使得它成爲一個字符串.... – Nick 2012-08-10 16:45:46