Php 8 Referans ve Value Değerler

Php 8 Referans ve Value Değerler

PHP 8'de referans ve value (değer) kavramları, değişkenlerin bellekte nasıl işlendiğiyle ilgilidir. PHP'de değişkenler varsayılan olarak değer (value) üzerinden çalışır, ancak bir değişkeni referans (reference) olarak da aktarabilirsiniz. Bu kavramlar, değişkenlerin fonksiyonlara nasıl geçirildiğini, fonksiyonlardan nasıl geri döndüğünü ve genel olarak değişkenlerin nasıl davranacağını anlamak için önemlidir.

1. Değer ile Atama (Value Assignment)

PHP'de varsayılan olarak değişkenler değer (value) üzerinden atanır. Bu, bir değişkenin kopyasının oluşturulup başka bir değişkene atandığı anlamına gelir. İki değişken, birbirinden bağımsız olarak işlem görür.

Örnek:

$a = 5; $b = $a; // $a'nın değerini $b'ye kopyalar $b = 10; // $b değiştirildi, ancak $a değişmedi echo $a; // 5 çıktısını verir echo $b; // 10 çıktısını verir

Bu örnekte, $b değişkenine $a'nın değeri kopyalandı. Daha sonra $b'yi değiştirdiğimizde, $a değişkeni aynı kaldı çünkü iki değişken birbirinden bağımsızdır.

2. Referans ile Atama (Reference Assignment)

PHP'de bir değişkeni referans olarak atamak, değişkenin bir kopyasını değil, aynı bellekteki adresi paylaşmasını sağlar. Bu, bir değişkenin değeri değiştiğinde, referansla bağlı olan diğer değişkenlerin de değişeceği anlamına gelir.

Referans atamak için & işareti kullanılır.

Örnek:

$a = 5; $b = &$a; // $a ve $b aynı belleği paylaşır $b = 10; // $b değiştirildiğinde, $a da değişir echo $a; // 10 çıktısını verir echo $b; // 10 çıktısını verir

Burada, $b ve $a aynı referansı paylaştıkları için biri değiştiğinde diğeri de otomatik olarak değişir.

3. Fonksiyonlarda Değer ile Parametre Geçişi

Varsayılan olarak, PHP'de fonksiyonlara parametreler değer olarak geçirilir. Bu, fonksiyona geçirilen değişkenin bir kopyası oluşturulup fonksiyon içinde kullanıldığı anlamına gelir. Fonksiyon içindeki değişiklikler, orijinal değişkeni etkilemez.

Örnek:

function degistir( $x ) { $x = 10; // $x fonksiyon içinde değişir, ama dışarıdaki değişken değişmez } $a = 5; degistir($a); echo $a; // 5 çıktısını verir

Bu durumda, $a fonksiyonun dışında 5 olarak kalır çünkü fonksiyona sadece değeri kopyalanmış ve bu kopya üzerinde işlem yapılmıştır.

4. Fonksiyonlarda Referans ile Parametre Geçişi

Bir parametreyi referans olarak geçirirseniz, fonksiyon içinde yapılan değişiklikler orijinal değişkeni de etkiler. Bunun için parametre tanımında & kullanılır.

Örnek:

function degistir(&$x ) { $x = 10; // $x'nin orijinal değeri değiştirilir } $a = 5; degistir($a); echo $a; // 10 çıktısını verir

Bu örnekte, $a referans olarak geçirildiği için, fonksiyon içindeki değişiklik doğrudan $a'ya yansır.

5. Fonksiyonların Referans Olarak Değer Döndürmesi

PHP'de bir fonksiyonun geri dönüş değerini de referans olarak tanımlayabilirsiniz. Bu, fonksiyonun döndürdüğü değerin bellekte bir referans adresini işaret edeceği anlamına gelir.

Örnek:

function &referansVer( ) { static $deger = 5; return $deger; // Bu, referans olarak döndürülür } $a = &referansVer(); // $a artık referansa bağlı $a = 10; echo referansVer(); // 10 çıktısını verir

Bu örnekte, fonksiyon referans olarak bir değişken döndürdüğü için, bu değişken dışarıdan da değiştirilebilir.

6. Referansların Fonksiyonlarda Kullanımı

Bazı PHP yerleşik fonksiyonları da referans olarak parametre alır ve bu parametreleri doğrudan değiştirebilir. Örneğin, sort() fonksiyonu, verilen diziyi referansla alır ve doğrudan değiştirir.

Örnek:

$dizi = [3, 1, 4, 1, 5]; sort($dizi); // $dizi, referansla işlenir ve doğrudan değişir print_r($dizi); // [1, 1, 3, 4, 5] çıktısını verir

Bu örnekte sort() fonksiyonu, $diziyi referansla alıp dizinin içeriğini değiştirir.

7. Kullanım Alanları

  • Referans Kullanımı: Bir değişkenin bellekte tek bir yer kaplamasını istediğinizde, aynı değişkeni birden fazla isimle işlemek gerektiğinde veya büyük veri yapılarının kopyalanmasını önlemek istediğinizde tercih edilir.
  • Değer ile Kullanım: Herhangi bir bağımsız kopya oluşturulması gerektiğinde, bir değişkenin başkaları tarafından değiştirilmeden kullanılmasını sağlamak için kullanılır.

Sonuç

PHP 8'de değer ve referans kavramları, değişkenlerin nasıl atandığını ve fonksiyonlara nasıl geçirildiğini belirler. Değer ile atama, değişkenin kopyalanmasını sağlarken, referans ile atama aynı bellekteki adresi paylaşmayı sağlar. Hangi yöntemi kullanacağınız, kodunuzu optimize etmek ve bellek yönetimini iyileştirmek için önemlidir.



Yorum Ekle

Üzerine gel