Sobes.tech
Intern

PHP'de değişkenler nasıl iletilir?

sobes.tech yapay zeka

AI'dan gelen yanıt

PHP'deki değişkenler varsayılan olarak değeriyle iletilir. Bu, bir değişkenin değerinin başka bir değişkene atanması veya bir değişkenin fonksiyona geçirilmesi durumunda, değerin bir kopyasının oluşturulduğu anlamına gelir. Bu kopyadaki değişiklikler, orijinal değişkeni etkilemez.

Ancak, değişkenler referansla da iletilebilir. Bu durumda, değerin bir kopyası yerine, orijinal değişkenle aynı bellek alanına işaret eden bir gösterici iletilir. Referans aracılığıyla yapılan değişiklikler, doğrudan orijinal değişkeni etkiler.

Referans iletimi şu durumlarda kullanılır:

  • Referans ile atama: Ampersand (=&) ile atama operatörünün kullanılması.

    // Referans ile atama
    $a = 10;
    $b =& $a;
    $b = 20; // $b'yi değiştirmek, $a'yı da değiştirir
    // $a şimdi 20
    
  • Fonksiyona referansla parametre geçirme: Fonksiyon tanımında parametre adından önce ampersand (&) eklenmesi.

    <?php
    // Referansla argüman alan fonksiyon
    function modifyValue(&$value) {
        $value *= 2;
    }
    
    $number = 5;
    modifyValue($number);
    // $number şimdi 10
    ?>
    
  • Fonksiyondan referansla değer döndürme: Tanımında fonksiyon adından önce ampersand (&) kullanılması.

    <?php
    // Referansla değer döndüren fonksiyon
    function &getReference() {
        static $value = 0;
        $value++;
        return $value;
    }
    
    $a = &getReference();
    $a = 100; // $a'yı değiştirmek, fonksiyon içindeki statik değişkeni de değiştirir
    
    $b = &getReference(); // $b artık aynı statik değişkene referans eder (101'e eşit)
    ?>
    

Bazı veri tiplerinin, örneğin nesnelerin, her zaman referansla iletildiğine dikkat edilmelidir (daha doğru ifade ile, nesneye referans iletilir). Bir nesne başka bir nesneye atanırken, her iki değişken de aynı nesne örneğine referans eder.

İletim Yöntemi Nasıl Çalışır Kullanım
Değere Göre Bir kopya oluşturulur Varsayılan davranış, orijinal değişken için güvenlidir
Referansa Göre Belleğe işaretçi iletilir Değişiklikler doğrudan orijinal değişkeni etkiler