首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

解決 CodeIgniter 在 PHP 5.6 下的「Only variable references should be returned by reference」兼容性問題

     編輯:PHP 相關知識

問題背景

當將 CodeIgniter 專案遷移至 PHP 5.6 環境時,常會遇到以下錯誤提示:

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

錯誤原因分析

PHP 5.6 加強了對「以引用返回值」的語法檢查。原始代碼嘗試直接返回一個引用賦值表達式的結果,這在新版本中被視為不合規範的寫法。具體問題出在 core/Common.php 第 257 行:

return $_config[0] =& $config;

解決方案

將操作拆分為兩步:先進行引用賦值,再返回變量本身。修改後的代碼如下:

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

原理說明

這種寫法符合 PHP 5.6+ 的語法規範:=& 建立變量引用關係後,$_config[0] 本身就是一個變量,直接返回它即可滿足「只能返回變量引用」的要求。這不僅修復了兼容性問題,也使代碼邏輯更清晰。

適用場景

  • CodeIgniter 2.x / 3.x 升級至 PHP 5.6 或更高版本
  • 維護老舊專案時遇到類似「return by reference」警告

修改後請務必測試配置加載功能,確保 $this->config->item() 等方法正常工作。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved