You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenCart安装Journal 3模板出现uksort、未定义$loader报错如何解决?

报错原因与修复方案

报错原因

  1. uksort() 废弃警告:PHP 8.0及以上版本修改了排序函数的返回值要求,比较函数仅支持返回负整数、0、正整数三种结果,返回布尔值的旧写法会触发废弃提醒。你使用的Journal3版本未适配PHP8+,parser.php第297行的uksort回调函数依然返回布尔比较结果,所以触发该警告。
  2. 未定义变量$loader错误:导入演示站点后,Journal3的扩展修改覆盖了OcStore原生Twig模板加载逻辑,但系统缓存的修改文件没有同步更新,导致$loader变量未被初始化就被调用,触发报错。

修复方案

修复uksort警告

  • 定位到文件 /home/l/lllci/optovik/public_html/system/library/journal3/options/parser.php,找到第297行的uksort相关代码
  • 原代码的回调函数大概率是类似如下返回布尔值的写法:
uksort($options, function($a, $b) {
    return $a['sort'] > $b['sort'];
});
  • 将比较逻辑替换为太空船运算符写法,符合PHP8+的要求:
uksort($options, function($a, $b) {
    // 升序排序用如下写法,降序则换成 $b['sort'] <=> $a['sort']
    return $a['sort'] <=> $b['sort'];
});

修复未定义$loader错误

  • 优先清除系统缓存:登录OcStore后台,点击右上角开发者设置按钮,选择清除全部修改缓存、Twig模板缓存即可。
  • 若无法登录后台,手动删除 /home/l/lllci/optovik/public_html/system/storage/modification/ 目录下除index.html外的所有文件与文件夹,系统会自动重新生成正确的修改文件。

临时兼容方案

如果不想修改代码,可将站点PHP版本降级到7.4,两个报错会自动消失。

内容的提问来源于stack exchange,提问作者Gybernaty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 09:54:08