我很困惑,为什么在以下两个代码块中,打印$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
有多余的空格:
$arr=array('type'=>' review');
^-- right there
我认为它在打印空格,你看不到,因为HTML是空白不敏感的。
也有可能PHP抛出警告。像索引数组一样索引字符串通常是一个bug。确保你已经打开了错误和通知
在您的第一个代码块中,$arr=array('type'=>' review');
在第一个单引号和r之间有一个空格。这就是为什么你的第一个代码块似乎什么也没打印出来,因为它打印的是一个空格字符。
将此代码更改为$arr=array('type'=>'review');
以修复此问题
实际上它做同样的事情。注意第一个代码块中的空格:
$arr = array('type' => ' review');
// ---------------------^
print_r($arr);
echo '<br>';
print_r($arr['type'][0]);
print_r打印数组信息。传递给print_r的数组是一个字符数组,这就是字符串的全部内容。[0]表示"r",[1]表示"e",以此类推。这就是为什么print_r($arr['type'])显示完整的字符串,并且添加第二个索引在您提供的任何索引处显示适当的字符。