我们知道PHP数组的索引有这么几种情况
1.默认索引:
即数字索引,这是PHP数组的默认索引形式,默认的数字索引从零开始,
当然数字索引除了默认以外,还可以直接指定,例如:
$arr = array(
4 => '我是指定的整型的四',
'4' => '我是指定的字符型的四'
);
echo "{$arr[4]}
";
echo "{$arr['4']}
";
咦?还可以这样整吗?当然可以,不过两个输出的结果是一样的。为什么?
因为PHP是一门弱类型的语言,尤其是在数字的应用上,经常是整型数字和字符型的数字相互转换的,当然这种转换一般是PHP自动进行的。就像上面的例子一样。你可能要问,为什么两个打印出的都是第二个元素值呢?
注意:PHP重复用相同名称命名变量会造成覆盖,例如:
$a = 3;
$a = 5;
echo $a;
这个时候得到的结果是五,这里的数组索引也会造成相同的效果。我们再来看下面的例子:
$arr = array('a' => 'a');
$arr = array('ab' => 'ab');
print_r($arr);
你会发现执行的结果是这样的 Array ( [ab] => ab ),为什么呢?
因为我们定义一个数组,实际上是将后面的数组赋给前面的变量,也就是说前面的变量是一个标识符。这个标识符用来指向数组在内存当中的实际地址,所以说当我们再次用相同的变量名标识一个数组时,这个变量就指向了新定义的这个数组在内存中的实际地址了。所以上面的情况发生了。我们在向数组追加元素或修改数组的时候一定不要像上面这样来使用。你可以这样
$arr[] = 'f';
$arr[] = 'x';
$arr['c'] = '1234';
当然,还有 array_push() 什么的,不过调用函数的执行效率不如前者。
下面,让我们来揭开PHP数组能不能使用中文作为索引的问题----
$as = array(
'我' => '非著名不专业操蛋扯蛋拽蛋玩蛋滚蛋煮蛋炒蛋煎蛋下蛋之《PHP淫牌讲师》
',
'..' => '你
',
',,' => '绝
',
'``' => '对
',
'??' => '木
',
'!!' => '有
',
'==' => '见
',
'--' => '过
',
'++' => '如
',
'**' => '此
',
'//' => '操
',
'##' => '蛋
',
'$$' => '的
',
'@@' => 'PHP
',
'&&' => '数
',
'^^' => '组
',
'%%' => '!!!
'
);
print_r($as);
你的眼睛没有看花,我的确就是这么写的。
恩,我讲课的风格也基本上就是这样。
当然,你可以觉得我很无聊很操蛋,不过,我的学生倒是蛮喜欢我的......
唉,人太拉轰也是一种罪过啊,男毋屙米豆腐......
执行一下上面的代码,你就知道了。
Copyright@ 2011-2016 版权所有:大连千亿科技有限公司 辽ICP备11013762-3号 google网站地图 百度网站地图 网站地图
公司地址:大连市沙河口区中山路692号辰熙星海国际2317 客服电话:0411-39943997 QQ:2088827823 37482752
法律声明:未经许可,任何模仿本站模板、转载本站内容等行为者,本站保留追究其法律责任的权利! 隐私权政策声明