[转]php中数组与字符串
程序员文章站
2022-04-29 20:31:29
...
原文地址:http://www.mirecle.com/2011/03/16/php-array-with-string.html
因为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'
]);
|
结果:
'h'
'h'
'e'
''
输出的结果就不说了,简单运行一下就可以知道,我想原因是由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上杯具
上一篇: 茼蒿炖芋头怎么做,原来制作方法很简单
下一篇: [转]高级PHP应用程序漏洞审核技术