<?php$data['first'] = 'hello';$data['first']['second'] = 'world';echo $data['first'];?>输出是wello 求解这个相当于类型的转换,把$data['first']这个字符串类型的变量转换成了数组类型,所以相当于$data['first'][0,1,2,3,4] $data['first'][0] 输出wello$data['first'][1] 输出hwllo$data['first'][2] 输出hewlo$data['first'][3] 输出helwo$data['first'][4] 输出hellw没看懂。。。 - - !
$data['first']="hello";//这个不用我多说//这时候$data['first']是一个字符串,也相当于一个数组:$data['first']与$arr=array('h','e','l','l','o')相同,而第二句:$data['first']['second']='world';//这个将它变成$arr就是$arr['second'],下标是个字符映射,其实和那'second'没什么关系,无论是什么都相当于$arr[0],也就是字符'h',$arr[0]='world';将'world'赋值后,只截取第一个字符,便将'h'替换为'w',最后就成了'wello';//所以语句:echo $data['first'];//输出为:wello;//依此类推,$data['first'][1]='world';最后就成了'hwllo',把第二个字符替换了,等等。
<?php$data['first'] = 'hello'; // 数组的值$data['first']['second'] = 'world'; .// 数组的值是字符型,second 命名的第一个元素 改为 world 但是只能对其中的第一个字符有效。echo $data['first']; // 显示数组的值?>
$data['first'] = 'hello';$data['first'] 是一个变量的名字$data['first']['second'] = 'world';$data['first'] 是一个数组的名字你再输出$data['first'] 相当于打印一个数组
$data['first']['second']实际上表示的是字符串第一个元素,因为键名second无法识别,默认为0,当把一个字符串'world'赋值给一个字符串数组的第一个元素时,由于收到存储空间的限制,字符数组的第一个元素h被赋值为w后,后面的orld已经没空间可以存储,所以才会有上面的结果。字符串数组跟其他的数组不同,默认情况下数组的长度就是字符串的长度,数组下标从0开始,每一个下标对应的键值只能是一个长度的字符【汉字字符串不一样,是3个】,这就是原因。