PHP中的isset和字符串

今天工作中需要写一个简单的错误判断,如果返回的值中存在array('error_code'=>'xxx','error_msg' => 'xxx') ,就视为出错。使用如下的简单判断:

1 if (isset($payUrl['error_code']) return $payUrl['error_msg'];

结果返回值居然是一个h....百思不得其解。通过var_dump出$payUrl,了解到$payUrl值正常,是一个458位的string。

也就是说:

1 $payUrl = 'hsdfasdfasdfdfasfsdfasdfd';
2 if (isset($payUrl['error_code']) return $payUrl['error_msg'];

返回的是h,这个h怎么看怎么像$payUrl的首字母啊.  果断去翻手册,看到string那一段有这么一句话:

字符串中的字符可以通过一个以0为开始的,用类似数组结构中的方括号包含对应的数字来查找和修改,比如$str[42], 可以把 字符串想像数组

也就是说,PHP把$payUrl['error_code']解析成了$payUrl[0]。恍然大悟啊...看来手册还是要多看,要看细一点。

$payUrl['error_code'] == $payUrl['error_msg'] == $payUrl[0];
$payUrl['1fdasf'] = $payUrl[1];
$payUrl['4fdsfer'] = $payUrl[4];

就和上面写的一样,以此类推...

posted @ 2012-08-23 11:46  chainsaw  阅读(237)  评论(0编辑  收藏  举报