Pointer'ın işlevini biliyor musunuz?
Yani böyle sonuç vermesi gayet mantıklı bir şeymiş.
PHP bilgim yok. Pointer kısmını siz söylediniz. Ama yazıp öğrenilebilecek bir şey. Nispeten basit bir şey ise internetten bakabilirim.
@TheAny ve @Vavien.'e katılıyorum. Birkaç şey daha eklemek isterim. Integer, long, string, double değer tiptir. Yani siz değişken oluşturduğunuzda bellekte "stack" adı verilen bölgede tutulmaktadırlar.
Array'ler, Object'ler, Interface'ler, Struct'lar ise referans tiptir. Depolanmaları "heap"te olurken, bu tipte oluşturduğunuz değişkenlerin "heap"te nerede tutulduğu "stack" üzerinde tutulur.
Örnek verip ufkunuzu açacağım merak etmeyin
Eki Görüntüle 2078609
Gördüğünüz gibi a = 10 dediğimizde stack üzerinde A'nın değerinin 10 olduğu tutulmakta.
Obj = object dediğimizde ise Obj'nin değeri, Obj'nin "heap"te nerede tutulduğu olur. Ve bu değer de "stack" üzerinde tutulur.
Yani siz sonradan gidip de yeni bir değişkenle obj2 = obj derseniz, obj2'de yine Obj'nin "heap"te nerede tutulduğunu refere eder. Obj2 üzerinden yaptığınız işlem de doğal olarak Obj'nin üzerinde değişiklik yapar.
Yani siz aslında obje oluşturduğunuzda doğrudan objeyi değil objenin tutulduğu yeri değer olarak alıyorsunuz.
Bu sitenin çalışmasını sağlamak için gerekli çerezleri ve deneyiminizi iyileştirmek için isteğe bağlı çerezleri kullanıyoruz.