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

PHP7.4.29兼容改造:替换OpenCart日志类的联合类型管道符

解决OpenCart中PHP8.0联合类型代码兼容PHP7.4的语法错误问题

PHP7.4不支持PHP8.0引入的string|array联合类型语法,这就是你遇到Parse error: syntax error, unexpected '|'的原因。以下是两种兼容修改方案:

方案1:直接移除参数类型声明

因为print_r()函数本身可以处理字符串和数组类型的输入,移除类型声明不会影响原有功能:

public function write($message): void {
    $this->message .= date('Y-m-d H:i:s') . ' - ' . print_r($message, true) . "\n";
}

方案2:保留类型提示意图(使用DocBlock注释)

如果需要让IDE或其他开发者明确参数允许的类型,可以用PHP文档注释替代原生联合类型声明:

/**
 * @param string|array $message 要写入日志的内容
 * @return void
 */
public function write($message) {
    $this->message .= date('Y-m-d H:i:s') . ' - ' . print_r($message, true) . "\n";
}

两种方案都能解决PHP7.4下的语法错误,同时保持原有的日志写入逻辑不变。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 14:06:15