1

いつ:

$person = array('name' => 'bill');

isset($person['jibberish'])FALSE と評価されます。

しかし:

$person = 'bill';

isset($person['jibberish'])$person['jibberish']文字列 $person の最初の文字を返すため、TRUE と評価されます。

これは意図したとおりですか?これは、if ステートメントにempty($array['key'])含めることなく常に使用してきたので、今日は衝撃的でした。is_array()

4

2 に答える 2

3

は文字列であるため$person、array-like-index は に変換されますint

(int)'any non-numeric string in the world' == 0

したがって、ランダムな非数値文字列をインデックスとして使用すると、「自然に」文字列の最初の文字が取得されます。

于 2013-04-22T16:26:24.967 に答える
1

配列ではなく、文字列の未定義のインデックスを出力しているためです。PHP で文字列のインデックスを出力しようとすると、文字列の各文字が表示されます。

$person = 'bill';
$person[0] //b
$person[1] //i
$person[2] //l
$person[3] //l
于 2013-04-22T16:27:23.333 に答える