前几天项目开始测试,在我的机器上跑的好好的代码,到了测试人员的机器上就跑不起来了,最后发现,测试机器上的PHP是5.3,我自己的机器是PHP 5.4,我写的代码中有两行是PH5.3不支持的。

演示代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$arrays = array(
0 => array(
'a1' => 1,
'a2' => 2
),

1 => array(
'a1' => 1,
'a2' => 2
)
);
?>

我要取$arrays中的最后一个子数组中的a1对应的值,我使用的是下面的语法:

1
$a1 = end($arrays)['a1'];

但是在PHP5.3下却报语法错误,5.3竟然不支持这种语法?????????
好吧,无语了,只能改成下面的语法:

1
2
$array_last = end($arrays);
$a1 = $array_last['a1'];

这也算是PHP中的一个坑。