كيف يعمل foreach فعليًا في PHP؟ فهم النسخ والمراجع
مرحبًا بالجميع! بدأت في تعلم PHP وواجهت سلوكًا غريبًا جدًا للحلقة `foreach`. كتبت كودًا بسيطًا، لكن النتائج أربكتني.
```php
1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
// كنت أتوقع أن تتضاعف جميع القيم!
```
اعتقدت أن `$value` هي reference لعنصر المصفوفة، لكن اتضح أنها نسخة. حسنًا، ثم جربت استخدام `&`:
```php
2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 ) — يعمل!
```
لكن بعد ذلك قرأت أن القيام بذلك خطير، لأن `$value` تظل reference للعنصر الأخير بعد الحلقة. وأيضًا سمعت عن شيء مثل "مؤشرات المصفوفة الداخلية" وأن `foreach` لا يعمل بالبساطة التي تبدو عليها.
هل يمكن لأحد أن يشرح كيف يعالج `foreach` ال