看到一句别人写的代码,类似是这样的:
$a = array();$a['key'] = $a['key'] + 1;var_dump($a);
累加,类似于a+=1;
是数组。。。
等价于 $a['key'] = null + 1;
等价于 $a['key'] = null + 1;
等价于 $a['key'] = null + 1;
等价于 $a['key'] = null + 1; 正解
$a = array();
$a['key'] = $a['key'] + 1; // 这个时候 $a['key']是不存在的,用isset($a['key']) 返回false,所以 $a['key'] = null
$a['key'] + 1 相当于 null +1 因为php会自动将null转为0进行算术运算,所以就是0+1 ,最后$a['key'] = 1了
var_dump($a);
最好不要这样写,php是弱类型语句,想要执行效率高点,最好能事先声明类型,不是让系统去识别
等价于 $a['key'] = null + 1;