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

CodeIgniter3 HMVC搭配PHP8.2出现str_replace废弃错误求助

解决CodeIgniter 3 HMVC + PHP 8.2的str_replace废弃通知错误

问题根源

PHP 8.2对函数参数类型检查更严格,str_replace()的第一个参数不允许传入null类型。当前MX/Controller.php第46行的代码中,CI::$APP->config->item('controller_suffix')可能返回null(当config.php中未显式设置该配置项时),触发废弃通知。

解决方案

方案1:修改MX/Controller.php代码,处理null参数

打开third_party/MX/Controller.php,找到第46行的代码,修改为以下两种方式之一:

方式A:先获取并处理配置值

// 先获取配置项,若为null则设为空字符串
$controller_suffix = CI::$APP->config->item('controller_suffix') ?? '';
$class = str_replace($controller_suffix, '', get_class($this));

方式B:直接在str_replace中使用空值合并运算符

$class = str_replace(CI::$APP->config->item('controller_suffix') ?? '', '', get_class($this));

方案2:显式设置CodeIgniter配置项

打开application/config/config.php,添加或修改以下配置项,确保controller_suffix有明确的字符串值(空字符串也可以):

$config['controller_suffix'] = '';

原理说明

两种方案都是确保str_replace()的第一个参数始终是字符串类型(即使是空字符串),符合PHP 8.2的参数类型要求,从而消除废弃通知。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 11:42:46