Только ссылки на переменные должны быть возвращены по ссылке - Codeigniter
После обновления PHP сервера я получаю следующую ошибку с версией PHP 5.6.2 на Apache 2.0
A PHP Error was encountered
Severity: Notice
Message: Only variable references should be returned by reference
Filename: core/Common.php
Line Number: 257
Как я могу это исправить?
4 ответа
Изменить имя файла: 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). Лучше обновить, чем модифицировать файлы ядра.
Измените номер строки core/Common.php: 257 код с
$_config[0] =& $config;
return $_config[0];
Это было изменено в codeigniter 2.2.1... обычно это не лучшая практика для модификации основных файлов, я всегда проверял бы наличие обновлений, и 2.2.1 вышел в январе 2015
Это не лучшая идея переопределить файл core.common codeigniter. Потому что это более проверенные и системные файлы....
Я делаю решение этой проблемы. В вашей строке ckeditor_helper.php - 65
if($k !== end (array_keys($data['config']))) {
$return .= ",";
}
Измените это на ->
$segment = array_keys($data['config']);
if($k !== end($segment)) {
$return .= ",";
}
Я думаю, что это лучшее решение, и тогда ваше уведомление о проблеме исчезнет.