PHP में foreach वास्तव में कैसे काम करता है? उदाहरणों के साथ विस्तृत विश्लेषण
सभी को नमस्कार! मैं कुछ महीनों से PHP में कोड लिख रहा हूँ, लेकिन अब भी मुझे foreach के काम करने का तरीका पूरी तरह से समझ नहीं आया। दस्तावेज़ में लिखा है कि यह "एरे को iterate करने का सुविधाजनक तरीका" है, लेकिन मुझे कुछ सवाल परेशान करते हैं जिनके जवाब नहीं मिलते।
उदाहरण के लिए, मुझे पता है कि foreach को reference (&$value) के साथ उपयोग करने पर array के elements को modify किया जा सकता है। लेकिन loop के बाद variable $value अभी भी last element को reference क्यों करता है? इससे unexpected bugs होते हैं।
मुझे यह भी जानना है: "under the hood" क्या होता है? क्या हर foreach पर array की copy बनती है? मैंने सुना है कि PHP copy-on-write mechanism का उपयोग करता है, लेकिन समझ नहीं आता कि यह loops के संदर्भ में कैसे काम करता है।
यहाँ एक उदाहरण है जो मुझे confuse करता है:
```php
$array = [1, 2, 3];
foreach ($array as &$value) {
$value *= 2;
}
// अब $array = [2, 4, 6]
// लेकिन अगर loop के बाद करें:
foreach ($array as $value) {
echo $value;
}
// परिणाम: 2 4 4, 2 4 6 के बजाय! क्यों?
```
मैंने यह भी देखा है कि nested arrays पर foreach करते समय...