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];
就和上面写的一样,以此类推...