0

$arr次の 2 つのコード ブロックで、印刷すると同じ出力が得られるのにそうで$arr['type'][0]ない理由について、私は混乱しています。r2 番目のコード ブロックの出力に注目してください。

$arr=array('type'=>' review');   
print_r($arr);
echo '<br>';
print_r($arr['type'][0]);

$arr['type']='review';   
print_r($arr);
echo '<br>';
print_r($arr['type'][0]);

出力

Array ( [type] => review ) 

Array ( [type] => review ) 
r
4

4 に答える 4

2

最初のコード ブロックで$arr=array('type'=>' review');は、最初の一重引用符とレビューの r の間にスペースがあります。これが、最初のコード ブロックが空白文字を出力しているため、何も出力していないように見える理由です。

そのコードをに変更し$arr=array('type'=>'review');て修正します。

于 2013-04-17T15:38:22.730 に答える
2

余分なスペースがあります:

$arr=array('type'=>' review');   
                    ^-- right there

HTMLは空白を区別しないため、表示されないスペースを印刷していると思います。

PHP が警告をスローする可能性もあります。配列のように文字列にインデックスを付けることは、通常はバグです。エラーと通知がオンになっていることを確認してください。

于 2013-04-17T15:33:23.287 に答える
1

実際、それは同じことをします。最初のブロックにあるスペースに注意してください。

$arr = array('type' => ' review');
// ---------------------^
print_r($arr);
echo '<br>';
print_r($arr['type'][0]);
于 2013-04-17T15:37:25.317 に答える