CodeIgniter安装报错求助:动态属性CI_URI::$config已弃用
解决CodeIgniter中"Creation of dynamic property CI_URI::$config is deprecated"报错
问题详情
A PHP Error was encountered
Severity: 8192
Message: Creation of dynamic property CI_URI::$config is deprecated
Filename: core/URI.php
Line Number: 102
Backtrace:
File: C:\xampp\htdocs\ci3\index.php
Line: 315
Function: require_once
原因分析
PHP 8.2及以上版本已禁止动态创建类属性,而CodeIgniter 3.x核心文件URI.php中直接给CI_URI类动态添加$config属性,违反了新版本PHP的规范,因此触发该警告。
解决方案
方法1:修改CI_URI类定义(推荐)
- 若
application/core目录下没有URI.php,先从system/core/URI.php复制一份到该目录 - 打开
application/core/URI.php,在CI_URI类的属性声明区域添加public $config;:
class CI_URI { public $config; // 新增属性声明 // 类内原有属性... public function __construct() { // 原有代码保留 $this->config =& get_config(); } }
提前声明属性后,PHP将不再抛出动态属性创建的警告。
方法2:降级PHP版本
将PHP版本降至8.1及以下,可避开该警告,但不推荐长期使用——旧版本PHP会逐步停止安全维护。
方法3:临时屏蔽警告
在项目根目录的index.php开头添加代码,屏蔽8192级别的 deprecation 警告:
error_reporting(E_ALL & ~E_DEPRECATED);
此方法仅隐藏警告,未从根源解决问题,适合临时测试场景。
内容的提问来源于stack exchange,提问作者Sneha M
相关产品推荐
相关产品推荐

