web-dev-qa-db-fra.com

Seules les références de variable doivent être renvoyées par référence - Codeigniter

Après le serveur PHP mise à niveau, l'erreur suivante s'affiche avec PHP Version 5.6.2 sur 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

Comment puis-je réparer cela?

161
Techie

Modifier le nom du fichier: core/Common.php, numéro de ligne: 257

Avant

return $_config[0] =& $config; 

Après

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

Mise à jour

Ajouté par NikiC

Dans PHP, les expressions d'affectation retournent toujours la valeur attribuée. Donc, $ _config [0] = & $ config renvoie $ config - mais pas la variable elle-même, mais une copie de sa valeur. Et renvoyer une référence à une valeur temporaire ne serait pas particulièrement utile (le changer ne ferait rien).

Mise à jour

Ce correctif a été fusionné avec CI 2.2.1 ( https://github.com/bcit-ci/CodeIgniter/commit/69b02d0f0bc46e914bed1604cfbd9bf74286b2e ). Il est préférable de mettre à niveau plutôt que de modifier les fichiers de la structure principale.

428
Techie

Changer le numéro de ligne core/Common.php: code 257 avec

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

cela a été modifié dans codeigniter 2.2.1 ... généralement pas la meilleure pratique pour modifier les fichiers de base, je vérifierais toujours pour les mises à jour et 2.2.1 est sorti en janvier 2015

7
Chad

Ce n'est pas une meilleure idée de remplacer le fichier core.common de codeigniter. Parce que ce sont les fichiers les plus testés et système ....

Je fais une solution à ce problème. Dans votre fichier ckeditor_helper.php ligne 65

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

Changer ceci en ->

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

Je pense que c'est la meilleure solution et votre avis de problème disparaîtra.

1
Maniruzzaman Akash