本帖最后由 ihipop 于 2012-10-13 10:44 编辑
从PHP5开始 如果array_merge的参数给入只接受是数组,否则会给出一个错误,同时没有正确返回 这点和PHP4不同
如果站点没有开启在线时间统计,则$onlinetime=array(0),那么$onlinetime[$uid]返回的就不是数组
参考PHP官方手册 http://php.net/manual/en/functio ... ray-merge-changelog
现在把$onlinetime[$uid]强制转换为数组以修复这个问题 ihipop 16:32 2012-10-12
补丁- Index: misc_stat.php
- ===================================================================
- --- misc_stat.php (版本 861)
- +++ misc_stat.php (版本 862)
- @@ -194,7 +194,12 @@
- $member_status = C::t('common_member_status')->fetch_all($uids);
- $member_count = C::t('common_member_count')->fetch_all($uids);
- foreach($members as $uid => $member) {
- - $member = array_merge($member, $member_status[$uid], $member_count[$uid], $onlinetime[$uid]);
- + //$member = array_merge($member, $member_status[$uid], $member_count[$uid], $onlinetime[$uid]);
- + //从PHP5开始 如果array_merge的参数给入只接受是数组,否则会给出一个错误,同时没有正确返回 这点和PHP4不同
- + //如果站点没有开启在线时间统计,则$onlinetime=array(0),那么$onlinetime[$uid]返回的就不是数组
- + //参考PHP官方手册 http://php.net/manual/en/function.array-merge.php#refsect1-function.array-merge-changelog
- + //现在把$onlinetime[$uid]强制转换为数组以修复这个问题 ihipop 16:32 2012-10-12
- + $member = array_merge($member, $member_status[$uid], $member_count[$uid], (array)$onlinetime[$uid]);
- $member['thismonthol'] = $member['thismonth'];
- $member['totalol'] = $member['total'];
- if($member['adminid'] == 1 || $member['adminid'] == 2) {
复制代码 |