CodeIgniter3分页功能出现PHP 8192级别错误求助
CodeIgniter3 分页 ctype_digit() 错误解决方案
错误原因
该警告出现在PHP 8.0及以上版本环境中,因为ctype_digit()函数不再允许传入null类型参数,而旧版CodeIgniter3的分页库在处理不存在的URL分段时,会将null传入该函数,触发兼容性警告。
解决方案
方案一:修正控制器参数处理
在country.php控制器的index方法中,确保分页起始参数$page始终为有效数字,避免null传入:
// 替换原$page赋值代码 $page = $this->uri->segment(3, 0); // 强制转为整数,确保参数合法 $page = (int)$page;
方案二:修改分页库文件
找到项目中的application/libraries/Pagination.php文件,定位到第526行,在调用ctype_digit()前处理null情况:
// 原代码 if (!ctype_digit($this->cur_page)) { $this->cur_page = 0; } // 修改为: if (empty($this->cur_page) || !ctype_digit((string)$this->cur_page)) { $this->cur_page = 0; }
或者直接将参数转为字符串,规避null问题:
if (!ctype_digit((string)$this->cur_page)) { $this->cur_page = 0; }
方案三:升级CodeIgniter3到最新稳定版
CodeIgniter3的3.1.14及以上版本已修复PHP 8.x的兼容性问题,升级框架后可直接解决该警告。
内容的提问来源于stack exchange,提问作者ABINAYA V
相关产品推荐
相关产品推荐

