PHP数组可以用中文索引

我们知道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);
你的眼睛没有看花,我的确就是这么写的。
恩,我讲课的风格也基本上就是这样。
当然,你可以觉得我很无聊很操蛋,不过,我的学生倒是蛮喜欢我的......
唉,人太拉轰也是一种罪过啊,男毋屙米豆腐......
执行一下上面的代码,你就知道了。
作者:Angrybird
来源:重庆PHP http://www.php-chongqing.com
原文地址:http://www.php-chongqing.com/index.php/article/3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值