最近在使用amfphp作为项目前后端通讯的方式。有人反映了一个奇怪的bug。然后在平时也偶尔遇到,随意下决心好好查出来。
具体情况是这样的。
后端php代码
<?php
class api{
public function response($params)
{
$result = array('a'=>4,'b'=>array('foo'=>'bar','spam'=>5));
return $result;
}
}
前端直接调用response 方法返回数据,得到这么一个结果:
array('a'=>4,'b'=>array('foo'=>'bar'),'spam'=>5);
很是让人蛋疼。后来经过对数据的逐个分析发现在’b'这个数组里的字段key值可能为空(因为b的数据是动态生成的,可能误传了空字段导致b里面出现了key为空的数据)。
amfphp解析数据就出错了。