有一个异常情况,变量$a是字符串类型,用isset($a[key])居然结果为True;
```
$a = '123456789';
$b = $a['a']; // 等于1,这里会把key【a】转化为int类型的0,然后回去获取$a的第一个元素1。
$c = $a[3]; // 等于4,即$a的第4个元素,key从0开始
**注意**
以后判定数组是否有某个key,需要先判断这个变量是否是数组。否则会出现上述异常情况。
本文探讨了在PHP中一个有趣的异常现象:当尝试通过数组访问的方式操作字符串变量时,如何避免因变量类型误判而导致的错误。文章通过具体示例展示了字符串作为伪数组的行为,并强调了在进行key检查时先验证变量类型的必要性。
有一个异常情况,变量$a是字符串类型,用isset($a[key])居然结果为True;
```
$a = '123456789';
$b = $a['a']; // 等于1,这里会把key【a】转化为int类型的0,然后回去获取$a的第一个元素1。
$c = $a[3]; // 等于4,即$a的第4个元素,key从0开始
**注意**
以后判定数组是否有某个key,需要先判断这个变量是否是数组。否则会出现上述异常情况。

被折叠的 条评论
为什么被折叠?