不推荐创建动态属性 CI_URI::$config

Hii*_*Hii 18 php codeigniter

遇到 PHP 错误

严重性:8192

消息:不推荐创建动态属性 CI_URI::$config

文件名:core/URI.php

线路编号:102

回溯:

文件:C:\xampp\htdocs\inv_perpus\index.php 行:288 函数:require_once

小智 32

我认为更好的方法是实现 #[\AllowDynamicProperties]

更容易而且更短。

在上述所有类中,在 class xxxxxx { 上方添加 #[\AllowDynamicProperties]

我给你我的改变:

/system/core/URI.php

#[\AllowDynamicProperties]

class CI_URI {
Run Code Online (Sandbox Code Playgroud)

/system/core/Router.php

#[\AllowDynamicProperties]

class CI_Router {
Run Code Online (Sandbox Code Playgroud)

/system/core/Loader.php

#[\AllowDynamicProperties]

class CI_Loader {
Run Code Online (Sandbox Code Playgroud)

/system/core/Controller.php

#[\AllowDynamicProperties]

class CI_Controller {   
Run Code Online (Sandbox Code Playgroud)

/系统/数据库/DB_driver.php

#[\AllowDynamicProperties]

abstract class CI_DB_driver {
Run Code Online (Sandbox Code Playgroud)

来源:https ://github.com/bcit-ci/CodeIgniter/pull/6193#issuecomment-1397221543


zan*_*war 13

这是 CodeIgniter 的问题。

/system/core/URI.php可以将其添加到类的顶部来修复它:

/**
 * CI Config
 *
 * @var CI_Config
 */
public $config;
Run Code Online (Sandbox Code Playgroud)

或者,您可以通过以下两种方式之一禁用弃用警告:

php.ini

error_reporting = E_ALL & ~E_DEPRECATED
Run Code Online (Sandbox Code Playgroud)

在代码中:

ini_set('error_reporting', E_ALL & ~E_DEPRECATED);
Run Code Online (Sandbox Code Playgroud)

当然,禁用这些错误是不好的做法,因为应该大声地听到这些错误并快速修复。

用 CodeIgniter 提出了一个问题,并提出了一个拉取请求,以便在下一个版本中为您解决这个问题。他们应该相对较快地处理这个问题,并很快发布补丁,所以就让事情发展下去,暂时消除错误

不过这个问题在 CodeIgniter 4 中已得到解决