Rengaver
PHP Pointers (Göstericiler) Nedir? - Baskı Önizleme

+- Rengaver (https://rengaver.com)
+-- Forum: Yazılım Dersleri (https://rengaver.com/forum-yazilim-dersleri)
+--- Forum: PHP (https://rengaver.com/forum-php)
+--- Konu Başlığı: PHP Pointers (Göstericiler) Nedir? (/konu-php-pointers-gostericiler-nedir)



PHP Pointers (Göstericiler) Nedir? - Rengaver - 02-05-2021

Benim çok önemsediğim ama hangi şirkette çalışırsam çalışayım oranın PHP developerlarının bilmediği bir konuya değinmek istedim. 
PHP Pointers - PHP Göstericiler
PHP de bir değişkeni diğerine referans gösterip o değişkenin tekrar oluşmasını engelleyerek ram tasarrufu ve hız katkısı sağlar. Yani daha basit bir deyişle A değişkeni B değişkenine referans olursa B'nin tüm özellikleri A'ya geçer ama A değişkeni B değişkenine EŞİT OLMAZ. B değişkeni de A değişkenine eşit olmaz. Bu iki değişken sadece birbirlerine referans olurlar. Bir değişkenin diğerine referans olması için & işareti kullanılır.
Örnek 1:
PHP Kod:
$a=5;
$b=&$a;
var_dump($b);
//çıktısı 5 olur 
Peki normal eşittirden farkı ne?
Örnek 2:
PHP Kod:
$a=5;
$b=&$a;
$b--;
var_dump($a);
//çıktısı 4 olur 
Yukarıdaki örnekte görüldüğü üzere A değişkeni B ye referans oldu ardından B değişkenini azalttık böylece A değişkeni de azalmış oldu.
Daha güzel nasıl kullanılır ? Herhangi bir objede yada dizilerde dizinin tamamını bir değişkene atamak yerine bir parçasını referans alabilirsiniz.
Örnek 3:
PHP Kod:
$a=[1,2,3];
$b=&$a[0];
$b--;
var_dump($a);
/*çıktısı
array(3) {
  [0]=>
  &int(0)
  [1]=>
  int(2)
  [2]=>
  int(3)
}
*/ 
Dizinin ilk elemanını referans alıp referansımızı 1 azalttık böylece dizinin içinde de azalmış oldu. var_dump a bakarsanız 
PHP Kod:
&int(0
şeklinde birşey görürsünüz bunun pointer ile bağlı olduğunu gösterir.