webentwicklung-frage-antwort-db.com.de

Nur variable Referenzen sollten per reference - Codeigniter zurückgegeben werden

Nach dem PHP Upgrade des Servers erhalte ich den folgenden Fehler mit PHP Version 5.6.2 unter 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

Wie kann ich das beheben?

161
Techie

Bearbeite den Dateinamen: core/Common.php, Zeilennummer: 257

Vor

return $_config[0] =& $config; 

Nach

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

Aktualisieren

Hinzugefügt von NikiC

In PHP Zuweisungsausdrücken wird immer der zugewiesene Wert zurückgegeben. $ _Config [0] = & $ config gibt also $ config zurück - aber nicht die Variable selbst, sondern eine Kopie ihres Wertes. Und die Rückgabe eines Verweises auf einen temporären Wert wäre nicht besonders nützlich (eine Änderung würde nichts bewirken).

Aktualisieren

Dieser Fix wurde in CI 2.2.1 ( https://github.com/bcit-ci/CodeIgniter/commit/69b02d0f0bc46e914bed1604cfbd9bf74286b2e ) zusammengeführt. Es ist besser, ein Upgrade durchzuführen, als die Kern-Framework-Dateien zu ändern.

428
Techie

Ändern Sie die Zeilennummer von core/Common.php: 257 mit

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

dies wurde in Codeigniter 2.2.1 geändert ... normalerweise nicht die beste Vorgehensweise zum Ändern von Kerndateien, ich würde immer nach Updates suchen und 2.2.1 wurde im Januar 2015 veröffentlicht

7
Chad

Es ist keine bessere Idee, die Datei core.common von codeigniter zu überschreiben. Denn das ist die mehr getesteten und Systemdateien ....

Ich mache eine Lösung für dieses Problem. In deiner ckeditor_helper.php Datei line- 65

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

Ändern Sie dies zu ->

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

Ich denke, dies ist die beste Lösung, und dann verschwindet Ihre Problemmeldung.

1