PHP 5.4 पर इसका परीक्षण करके "भावी-प्रमाणन" कोड, मुझे एक चेतावनी मिलती है जिसे मैं समझ नहीं पा रहा हूं।मेरी सरणी अनुक्रमणिका किस तरह से 'अवैध स्ट्रिंग ऑफ़सेट' है?
function __clone() {
$this->changed = TRUE;
foreach ($this->conditions as $key => $condition) {
if (
$condition['field']
instanceOf QueryConditionInterface) {
$this->conditions[$key]['field'] = clone($condition['field']);
}
}
}
मैं बाहर $condition['field']
उसकी अपनी पंक्ति में तोड़ दिया पर ध्यान केंद्रित करने के लिए कोड की मात्रा को कम करने के लिए। अवैध स्ट्रिंग DatabaseCondition->__clone()
में 'field'
ऑफसेट और मैं सिर्फ नहीं देख सकते हैं कि 'क्षेत्र', एक अवैध स्ट्रिंग ऑफसेट है: कि विशिष्ट लाइन के बारे में, पीएचपी इस
चेतावनी क्या कहना है। मुझे लगता है कि मैं बस कुछ स्पष्ट याद कर रहा हूं, लेकिन यदि समुदाय को कोई समस्या नहीं मिल रही है, तो मैं एक बग रिपोर्ट दर्ज करूंगा।
मैं चेतावनी की व्याख्या करता हूं "किसी भी परिस्थिति में 'फ़ील्ड' वैध कुंजी" नहीं है। यह त्रुटि समझ में आती है अगर मैंने उदाहरण के लिए एक सरणी के रूप में हमारी कोशिश की थी।
कोड समीक्षा कार्य कोड में सुधार के लिए है। चेतावनियों के अर्थ के बारे में विशिष्ट प्रश्न ऑफ-विषय हैं। –
क्या आप 'var_dump ('$ this-> शर्तों') कर सकते हैं;'? –
यह त्रुटि तब भी होती है जब PHP 5.4 के तहत ड्रूपल स्थापित करते हैं http://drupal.org/node/1483986 मुझे विश्वास है कि PHP 5.4 में कुछ टूटा हुआ है, या शायद 'फ़ील्ड' अब एक आरक्षित PHP कीवर्ड है जिसका उपयोग सरणी के लिए नहीं किया जा सकता है, लेकिन मैं एक PHP बग की ओर झुका रहा हूँ। यह बताया गया है कि यह त्रुटि PHP पर पिछले संस्करणों में नहीं होती है। – Brain2000