IT技术博客大学习 共学习 共进步

php中数组与字符串

闫鹏 blog 2011-06-23 00:37:51 浏览 3,325 次

因为php的语法要求不严格,字符串也可以当数组使用,这样就存在一个问题:当使用非数字作为key访问字符串中的内容时,就可能会带来一些不一致的情况,如下面的代码

 
1 $hello = "hello";
2 var_dump($hello['abc']);
3 var_dump($hello['0']);
4 var_dump($hello['1abc']);
5 var_dump($hello['12abc']);

输出的结果就不说了,简单运行一下就可以知道,我想原因是由intval这个东东引起的,时间关系,没有去确认zend的代码,不过下面代码的运行结果页说明了一些问题

 
1 var_dump(intval('abc'));
2 var_dump(intval('0'));
3 var_dump(intval('1abc'));
4 var_dump(intval('12abc'));

这个东东,对code review或者测试时候是一个很有杀伤力的bug,如果一个函数设计的返回值不好,有时候返回数组,有时候返回字符串,在使用之前,就一定要先判断返回结果是否为数组,否则就会在这个bug上杯具

建议继续学习

  1. 字符串匹配那些事(一) (阅读 7,104)
  2. 为什么数组标号是从0开始的? (阅读 6,165)
  3. C语言结构体里的成员数组和指针 (阅读 6,083)
  4. 将数组定义为常量 (阅读 5,545)
  5. 一个十分有趣的字符串算法题目 (阅读 5,341)
  6. Tips of Linux C programming (阅读 5,104)
  7. xml转数组的方法 (阅读 4,584)
  8. 一个 VLA (可变长度数组)的实现 (阅读 4,189)
  9. javascript扩展Array(数组)类 (阅读 4,103)
  10. php数组排序 (阅读 4,088)