只能通过引用返回变量引用 - Codeigniter

时间:2015-02-05 16:17:51

标签: php apache codeigniter apache2 codeigniter-2

服务器PHP升级后,我在Apache 2.0上使用PHP 5.6.2版收到以下错误

A PHP Error was encountered
Severity: Notice
Message: Only variable references should be returned by reference
Filename: core/Common.php
Line Number: 257

我该如何解决这个问题?

5 个答案:

答案 0 :(得分:422)

编辑文件名:core / Common.php,行号:257

return $_config[0] =& $config; 

$_config[0] =& $config;
return $_config[0]; 

更新

由NikiC添加

在PHP赋值表达式中,始终返回指定的值。所以$ _config [0] =& $ config返回$ config - 但不是变量本身,而是它的值的副本。返回对临时值的引用不会特别有用(更改它不会做任何事情)。

更新

此修补程序已合并到CI 2.2.1(https://github.com/bcit-ci/CodeIgniter/commit/69b02d0f0bc46e914bed1604cfbd9bf74286b2e3)中。最好是升级而不是修改核心框架文件。

答案 1 :(得分:8)

更改core / Common.php行号:257代码

$_config[0] =& $config;
return $_config[0];

答案 2 :(得分:7)

这已在codeigniter 2.2.1中进行了修改...通常不是修改核心文件的最佳做法,我总是会检查更新,并且2015年1月发布了2.2.1

答案 3 :(得分:1)

覆盖codeigniter的core.common文件并不是一个好主意。因为那是经过测试的更多系统文件......

我为这个问题找到了解决方案。 在您的ckeditor_helper.php文件中  第65行

if($k !== end (array_keys($data['config']))) {
       $return .= ",";
}

将此更改为 - >

 $segment = array_keys($data['config']);
    if($k !== end($segment)) {
           $return .= ",";
    }

我认为这是最佳解决方案,然后您的问题通知会消失。

答案 4 :(得分:0)

  

编辑文件名:system / core / Common.php,行号:257

return $_config[0] =& $config; 

$_config[0] =& $config;
return $_config[0];