ysx24 发表于 2026-2-8 21:09:51

主题列表最后一页显示出错:Unsupported operand types: string + int New

版块的最后一页出错:
https://www.dianbo.org/forum.php?mod=forumdisplay&fid=7&page=14
如果更换显示顺序,在某个页面也会出错:
https://www.dianbo.org/forum.php?mod=forumdisplay&fid=7&filter=reply&orderby=replies&page=7
https://www.dianbo.org/forum.php?mod=forumdisplay&fid=7&filter=author&orderby=dateline&page=9
https://www.dianbo.org/forum.php?mod=forumdisplay&fid=7&filter=reply&orderby=views&page=13
只在这一个版块出现这个情况,要如何排查问题?

www.dianbo.org - System Error
Unsupported operand types: string + int

PHP Debug
No.FileLineCode1forum.php71require()2source/module/forum/forum_forumdisplay.php862break()




1 贡献最佳答案

      科站网 发表于 2025-4-18 17:15
你的错误和lastpost没关系,是views的问题,如果数据库里的views对的,那么考虑有没有插件影响 ...
我查代码 核实了;
$threadlist[$index]['views'] 是个 字符串的 0, 不是int 的 0
只有 访问的 列表的包含的 帖子正好在 forum_threadaddviews这个表 里面有 缓存数据的时候 才会触发;

这是个不易发现的小bug

我原版的X3.5;   Discuz! X3.5 Release 20240520 UTF-8      

天外飘仙发表于2025-4-18 17:25:02
[*]详细答案 >

余赚网 发表于 2026-2-8 21:10:24

你的数据有不对

站帮网 发表于 2026-2-8 21:11:20

你用的php8 吧? 切换到php7 应该就好了;

如果需要的话 也可以加我 QQ 有偿协助

可可的可 发表于 2026-2-8 21:11:52

只有一个版块出现这个问题,也可能是PHP环境的问题吗?我安装个PHP7.4试试。

可可的可 发表于 2026-2-8 21:12:48

Unsupported operand types: string + int;

从报错类型来看 就是 不兼容php8;

具体哪里的问题还需要 具体 debug代码

ROBOT 发表于 2026-2-8 21:13:29

切换成PHP7.4,页面可以正常打开了。现在的问题就是怎么解决了。

ROBOT 发表于 2026-2-8 21:13:38

解决了 就好

小冰 发表于 2026-2-8 21:14:23




完整修复后的代码示例结合上述方法,以下是修复后的代码:
if (!empty($threadids)) {    $indexlist = array_flip($threadids);    // 初始化 $_G['forum_threadlist'] 中的 views 字段    foreach ($_G['forum_threadlist'] as &$thread) {      $thread['views'] = isset($thread['views']) ? (int)$thread['views'] : 0;    }    unset($thread);    // 处理附加浏览量    foreach (C::t('forum_threadaddviews')->fetch_all($threadids) as $tidkey => $value) {      $index = $indexlist[$tidkey];      // 确保类型安全      $threadlist[$index]['views'] = (int)$threadlist[$index]['views'] + (int)$value['addviews'];      $_G['forum_threadlist'][$index]['views'] = (int)$_G['forum_threadlist'][$index]['views'] + (int)$value['addviews'];    }}PHP8.2下,如上修改后,版面最后一页显示变为正常。

::Bra 发表于 2026-2-8 21:15:13

请看楼上,也不知道这种情况需不需要提交 Issue。

站帮网 发表于 2026-2-8 21:15:58

治标不治本,本来这个字段就应该是int,为什么你是string
页: [1]
查看完整版本: 主题列表最后一页显示出错:Unsupported operand types: string + int New