0

我很困惑为什么在以下两个代码块中,打印$arr给出相同的输出但$arr['type'][0]没有。注意r第二个代码块输出中的:

$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');   
                    ^-- right there

我认为它正在打印空间,因为 HTML 对空格不敏感,所以您看不到。

PHP 也有可能引发警告。像数组一样索引字符串通常是一个错误。确保您已打开错误和通知。

于 2013-04-17T15:33:23.287 回答
2

在您的第一个代码块中,$arr=array('type'=>' review');第一个单引号和审查中的 r 之间有一个空格。这就是为什么您的第一个代码块似乎什么也不打印的原因,因为它正在打印一个空格字符。

将该代码更改为$arr=array('type'=>'review');以解决该问题。

于 2013-04-17T15:38:22.730 回答
1

实际上它做同样的事情。注意你在第一个块中的空间:

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

print_r 打印数组上的信息。您传递的数组 print_r 是一个字符数组,它就是一个字符串。[0] 显示“r”,[1] 显示“e”,依此类推。这就是 print_r($arr['type']) 显示完整字符串并添加第二个索引在您提供的任何索引处显示适当字符的原因。

于 2013-04-17T15:42:40.260 回答