Solo las referencias de variables deben ser devueltas por reference-Codeigniter


Después de la actualización de PHP del servidor, recibo el siguiente error con la versión 5.6.2 de PHP en 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

¿Cómo puedo arreglar esto?

Author: Techie, 2015-02-05

4 answers

Editar nombre de archivo: core/Common.php, número de línea: 257

Antes

return $_config[0] =& $config; 

Después de

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

Actualizar

Añadido por NikiC

En PHP las expresiones de asignación siempre devuelven el valor asignado. Entonces $_config [0] = & conf config devuelve conf config - pero no la variable en sí, sino una copia de su valor. Y devolver una referencia a un valor temporal no sería particularmente útil (cambiarlo no haría nada).

Actualizar

Esta corrección se ha fusionado en CI 2.2.1 ( https://github.com/bcit-ci/CodeIgniter/commit/69b02d0f0bc46e914bed1604cfbd9bf74286b2e3 ). Es mejor actualizar en lugar de modificar los archivos del framework principal.

 398
Author: Techie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-28 12:26:29

Cambiar core/Common.número de línea php: 257 código con

$_config[0] =& $config;
return $_config[0];
 8
Author: Sanu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-22 14:41:55

Esto ha sido modificado en codeigniter 2.2.1...por lo general, no es la mejor práctica para modificar los archivos principales, siempre revisaría las actualizaciones y la versión 2.2.1 salió en enero de 2015

 7
Author: Chad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-14 14:06:48

No es una mejor idea anular el núcleo.archivo común de codeigniter. Porque eso es lo más probado y los archivos del sistema....

Hago una solución para este problema. En tu ckeditor_helper.archivo php línea- 65

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

Cambie esto a {>

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

Creo que esta es la mejor solución y entonces su aviso de problema desaparecerá.

 1
Author: Maniruzzaman Akash,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-15 06:58:57