$person = array('name' => 'bill');
isset($person['jibberish'])
爲FALSE。
但是:
$person = 'bill';
isset($person['jibberish'])
計算爲TRUE,爲$person['jibberish']
返回字符串$人的第一個字符。
這是否符合預期?這對我來說今天是令人震驚的,因爲我一直使用empty($array['key'])
而沒有在我的if語句中包含is_array()
。
這是PHP與字符串>整型的未100%-obvious行爲的一個很好的例子鑄件。試試'$ person ='bill'; var_dump(isset($ person ['10 green bottles']));' - 參見http://php.net/manual/en/language.types.type-juggling.php和http://php.net/manual /en/language.types.string.php#language.types.string.substr作爲你看到這種行爲的關鍵。你需要記住的是你正在處理下面的C字符串,所以一切都只是一個字節數組。 – DaveRandom 2013-04-22 16:21:42
任何以數字開頭的字符串在將類型轉換爲int時都會成爲該數字,因此(int)'10綠色瓶子'== 10; // true。如果它不以數字開頭,它將被轉換爲0。 – fullybaked 2013-04-22 16:28:08