笨; $非对象上下文中的这种用法

max*_*ax_ 2 php codeigniter

我正在尝试编辑我的config/database.phpCodeIgniter项目,以便每次将新版本推送到服务器时都不必更改数据库信息.为了完成后者,我创建了一个$debug变量,如下所示,它检查uri以查看该站点是在我的localhost机器上运行的(我在上载之前构建项目)还是在实际服务器上运行.

不幸的是在database.php文件中,我没有访问$this变量的权限,而且由于我个人对PHP中的OOP不熟悉,我并不完全确定如何解决这个问题.请问您能告诉我怎么做?

谢谢,

最大.

致命错误:在第51行的application/config/database.php中不在对象上下文中时使用$ this

$debug = strpos($this->uri->config->item('base_url'), 'localhost'); //line 51

$db['default']['hostname'] = $debug == TRUE ? 'x' : 'y';
$db['default']['username'] = $debug == TRUE ? 'x' : 'y';
$db['default']['password'] = $debug == TRUE ? 'x' : 'y';
$db['default']['database'] = $debug == TRUE ? 'x' : 'y';
Run Code Online (Sandbox Code Playgroud)

Sam*_*fel 13

你需要得到一个codeigniter对象的实例 -

$CI = get_instance();
Run Code Online (Sandbox Code Playgroud)

对于旧版本的php,请使用=&

然后,$CI在通常使用的任何地方使用$this