Vòng lặp foreach đầu tiên không thực hiện bất kỳ thay đổi đến mảng, giống như chúng ta mong đợi. Tuy nhiên, nó gây ra $v
được chỉ định tham chiếu đến từng yếu tố của $a
, sao cho, khi vòng lặp đầu tiên kết thúc, thì thực tế, một tham chiếu đến $a[2]
.
Ngay khi vòng lặp thứ hai bắt đầu, $v
hiện được gán giá trị của mỗi phần tử . Tuy nhiên, $v
đã là tham chiếu đến $a[2];
do đó, mọi giá trị được gán cho nó sẽ được sao chép tự động vào phần tử cuối cùng của mảng!
Do đó, trong lần lặp đầu tiên, $a[2]
sẽ trở thành 0, sau đó một, và sau đó một lần nữa, được sao chép hiệu quả vào chính nó. Để giải quyết vấn đề này, bạn luôn phải bỏ đặt các biến mà bạn sử dụng trong các tham chiếu của mình cho các tham chiếu vòng lặp — hoặc, tốt hơn, tránh sử dụng hoàn toàn các biến đó.
* "Tôi nghĩ, prog bình thường của nó nhưng web tôi thấy op ......... sau đó .... ahh wat là nó" * nghĩa là gì? –
Tôi tự hỏi !!! Tại sao có được kết quả này ?? :) –
@Bart Kiers: Anh ta có vẻ ngỡ ngàng. – BoltClock