नज़र foreach पाश को अगले मुख्य मिलती है:php कुंजी() या इस पर
<?php
$array = array('a' => '…', 'b' => '…', 'c' => '…', 'd' => '…', 'e' => '…', 'f' => '…');
foreach ($array as $key => $val){
echo "current key: $key, next key: ".key(($array))."<br>";
}
?>
उत्पादन:
current key: a, next key: b
current key: b, next key: c
current key: c, next key: d
current key: d, next key: e
current key: e, next key: f
current key: f, next key: a
मैं एक समारोह के लिए खोज रहा था पाने के लिए एक foreach-loop के भीतर एक सहयोगी सरणी की अगली कुंजी। मैंने थोड़ी कोशिश की और अचानक यह काम किया। (जैसा कि आप मेरे उदाहरण में देख सकते हैं)।
लेकिन यह काम क्यों करता है? क्या इस का कोई मतलब निकलता है? … मुझे नहीं! क्या आप इसे मुझे समझा सकते हैं?
यह key(($array))
भाग के कारण है लेकिन क्यों? मेरा मतलब है .. यह एक गलती थी .. मैं key($array)
लिखना चाहता था लेकिन मैं 2 रैपिंग ब्रैकेट को मिटाना भूल गया। तो यह संयोग था !!!
यह इस तरह से क्यों व्यवहार करता है? मेरा मतलब है, यह अच्छा है लेकिन ... ????
दिलचस्प। यदि आप त्रुटि रिपोर्टिंग पर स्विच करते हैं, तो आपको बहुत सारी त्रुटियां दिखाई देगी। अतिरिक्त ब्रैकेट प्रत्यक्ष चर संदर्भ को तोड़ रहे हैं। '$ a' एक चर है, '($ ए)' एक अभिव्यक्ति है जिसके परिणामस्वरूप' $ a' का * मान * है। 'key' संदर्भ द्वारा पारित एक चर की अपेक्षा करता है। निश्चित नहीं है कि वास्तव में 'कुंजी' क्या करता है और यह जिस तरह से व्यवहार करता है, उससे व्यवहार क्यों करता है, लेकिन मैं इसे गलत, अपरिभाषित व्यवहार के तहत दर्ज करूंगा। – deceze
व्हाओ, अगर यह इरादा व्यवहार अद्भुत है। इतने सारे बार मैंने ऐसा कुछ इस्तेमाल किया होगा। –
लेकिन आप क्या सुझाव देते हैं? क्या मैं इसे इस तरह रखूंगा? –