PHP’de pointer kullanımı
PHP’de pointer kullanımı oldukça basittir. Pointer’lar bir değişkenin değerini aktarmak ya da kullanmak gerektiğinde bellekten tasarruf etmek ya da işlem sayısını optimize etmek için, o değişkenin değerini referans alarak veya işaret ederek kullanmayı olanaklı kılar
İlk örneğimizde pointer kullanmanın faydalarını işleyeceğiz. İlk önce pointer kullanılmadan yapılmış örneğimizi inceleyelim ;

Sonuçta da görüldüğü gibi işaretçi kullanılmadan yapılacak referans alma ya da değer taşıma işlemlerinde ana değişkenin değerinin değişimi ikinci değişkene etki etmeyecektir. İşaretçi kullanılarak ise;

Sonuçtan da görüleceği üzere işaretçi kullanılarak ana değişkenin($deneme) değerine işaret eden ikinci değişkenimiz($tasi), ana değişkenin yaşadığı değişimlerden etkilenmiştir, aslında burada $tasi değişkeninin görevi $deneme alanında tutulan veriye işaret etmektir.

Sıradaki örnekte ise işaretçilerin fonksiyon içerisinde kullanımını inceleyeceğiz;

Görüldüğü gibi işleme tabii tutulacak değişken fonksiyona işaretçi ile gönderildiği zaman ekstra değişken ve return işlemleriyle uğraşmaya gerek kalmamaktadır. Fonksiyon bizzat işaret edilen değişkene işlemleri uygular.
Kaynak Baturay DAYLAK
<?php
$anaDegisken = "Ana değişken";
echo "<b>Birinci değişkenin değeri:</b> $anaDegisken";
$isaret = $anaDegisken;
echo "<br><b>Birinci değişkenden kopyalanmış ikinci değişken:</b> $isaret";
$anaDegisken = "Değiştirildi";
echo "<br><b>Birinci değişken değiştirildi:</b> $anaDegisken";
echo "<br><b>Birinci değişken değiştirildikten sonra kopya değişkenin değeri:</b> $isaret";
?>
$anaDegisken = "Ana değişken";
echo "<b>Birinci değişkenin değeri:</b> $anaDegisken";
$isaret = $anaDegisken;
echo "<br><b>Birinci değişkenden kopyalanmış ikinci değişken:</b> $isaret";
$anaDegisken = "Değiştirildi";
echo "<br><b>Birinci değişken değiştirildi:</b> $anaDegisken";
echo "<br><b>Birinci değişken değiştirildikten sonra kopya değişkenin değeri:</b> $isaret";
?>

Sonuçta da görüldüğü gibi işaretçi kullanılmadan yapılacak referans alma ya da değer taşıma işlemlerinde ana değişkenin değerinin değişimi ikinci değişkene etki etmeyecektir. İşaretçi kullanılarak ise;
<?php
$deneme = "Bir değişken";
echo "<b>deneme değişkeninin değeri :</b> $deneme<br>";
$tasi = &$deneme;
echo "<b>tasi işaretçisinin değeri:</b> $tasi<br>";
$deneme = "gmm";
echo "<b>deneme değişkeninin değeri değiştirildi:</b> $deneme<br>";
echo "<b>bakalim tasi işaretçisi ne oldu :</b>$tasi";
?>
$deneme = "Bir değişken";
echo "<b>deneme değişkeninin değeri :</b> $deneme<br>";
$tasi = &$deneme;
echo "<b>tasi işaretçisinin değeri:</b> $tasi<br>";
$deneme = "gmm";
echo "<b>deneme değişkeninin değeri değiştirildi:</b> $deneme<br>";
echo "<b>bakalim tasi işaretçisi ne oldu :</b>$tasi";
?>

Sonuçtan da görüleceği üzere işaretçi kullanılarak ana değişkenin($deneme) değerine işaret eden ikinci değişkenimiz($tasi), ana değişkenin yaşadığı değişimlerden etkilenmiştir, aslında burada $tasi değişkeninin görevi $deneme alanında tutulan veriye işaret etmektir.

Sıradaki örnekte ise işaretçilerin fonksiyon içerisinde kullanımını inceleyeceğiz;
<?php
//pointer denemeleri
$d = "Baturay";
$a = &$d;
echo "Pointer ile atanmış değişken <strong>$a</strong><br>";
echo "Kaynak değişken değiştiriliyor...<br>";
$d = "Değiştirdim";
echo "Pointed değişken : <strong>$a</strong><br>";
//pointer ile fonksiyona akmalar
$bu = "Bunu pointer ile değiştireceğim..";
function degistir($giris,$ara,$degis)
{
$giris = str_replace($ara,$degis,$giris);
}
echo "Fonksiyonu çağırmadan önce: <strong>$bu</strong><br>";
degistir($bu,"değiştireceğim","değiştirdim bile");
echo "Fonksiyonu çağırdıktan(pointer kullanmadan) sonra: <strong>$bu</strong><br>";
degistir(&$bu,"değiştireceğim","değiştirdim bile");
echo "Fonksiyonu çağırdıktan sonra: <strong>$bu</strong><br>";
?>
//pointer denemeleri
$d = "Baturay";
$a = &$d;
echo "Pointer ile atanmış değişken <strong>$a</strong><br>";
echo "Kaynak değişken değiştiriliyor...<br>";
$d = "Değiştirdim";
echo "Pointed değişken : <strong>$a</strong><br>";
//pointer ile fonksiyona akmalar
$bu = "Bunu pointer ile değiştireceğim..";
function degistir($giris,$ara,$degis)
{
$giris = str_replace($ara,$degis,$giris);
}
echo "Fonksiyonu çağırmadan önce: <strong>$bu</strong><br>";
degistir($bu,"değiştireceğim","değiştirdim bile");
echo "Fonksiyonu çağırdıktan(pointer kullanmadan) sonra: <strong>$bu</strong><br>";
degistir(&$bu,"değiştireceğim","değiştirdim bile");
echo "Fonksiyonu çağırdıktan sonra: <strong>$bu</strong><br>";
?>

Görüldüğü gibi işleme tabii tutulacak değişken fonksiyona işaretçi ile gönderildiği zaman ekstra değişken ve return işlemleriyle uğraşmaya gerek kalmamaktadır. Fonksiyon bizzat işaret edilen değişkene işlemleri uygular.
Kaynak Baturay DAYLAK