केवल चर संदर्भों को संदर्भ द्वारा लौटाया जाना चाहिए - कोडाइनाइटर


173

सर्वर PHP अपग्रेड के बाद मुझे Apache 2.0 पर PHP संस्करण 5.6.2 के साथ निम्न त्रुटि हो रही है

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

मैं इसे कैसे ठीक करूं?

जवाबों:


450

फ़ाइल नाम संपादित करें: 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/69b02d0f0bc46e914bed1604cfbd9bfb28286b2e3 ) में मिला दिया गया है । कोर फ्रेमवर्क फ़ाइलों को संशोधित करने के बजाय इसे अपग्रेड करना बेहतर है।


2
hiya ... यह समझाने के लिए कि ऐसा क्यों करें? यह काम करता है और मुझे पता नहीं क्यों: p
GuyFreakz

4
@GuyFreakz PHP असाइनमेंट एक्सप्रेशन में हमेशा असाइन किया गया मान लौटाता है । तो $_config[0] =& $configरिटर्न $config- लेकिन चर ही नहीं, बल्कि इसके मूल्य की एक प्रति। और एक अस्थायी मूल्य के संदर्भ में लौटना विशेष रूप से उपयोगी नहीं होगा (इसे बदलने से कुछ भी नहीं होगा)।
NikiC

हाँ ... यह एक अच्छा है! मुझे नहीं पता कि यह ऐसा क्यों दे सकता है जो चीजों को दिखाया जाए ...: D
gumuruh

4
इसे ci 2.2.1 में मर्ज कर दिया गया है https://github.com/bcit-ci/CodeIgniter/commit/69b02d0f0bc46e914bed1604cfbd9bf74286b2e3। यह उन्नत करने के लिए बेहतर है जैसे @Chad ने उल्लेख किया है।
सियाकुर रहमान

1
जब मैं 243 लाइन पर इस फिक्स को आज़माता हूं, तो मैं कोडिगनिटर (2.0.2) के पुराने संस्करण पर हूं (यह वह जगह है जो मेरे संस्करण में दिखाई देती है) - मुझे php 500 त्रुटि मिलती है। किसी भी विचार कैसे मैं यह काम कर सकते हैं?
जोएम ०५

8

यह कोडाइनिटर 2.2.1 में संशोधित किया गया है ... आमतौर पर कोर फ़ाइलों को संशोधित करने के लिए सबसे अच्छा अभ्यास नहीं है, मैं हमेशा अपडेट की जांच करूंगा और 2.2.1 जनवरी 2015 में सामने आया।


1

Codeigniter की core.common फाइल को ओवरराइड करना बेहतर विचार नहीं है। क्योंकि वह अधिक परीक्षित और सिस्टम फाइल है ...।

मैं इस समस्या का हल बनाता हूं। अपने ckeditor_helper.php फ़ाइल लाइन- 65 में

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

इसे बदलकर -> करें

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

मुझे लगता है कि यह सबसे अच्छा समाधान है और फिर आपकी समस्या नोटिस गायब हो जाएगी।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.