CodeBlanks Logo Icon CodeBlanks

$this ile sınıf içi erişim

PHP kursu · Orta seviye · Ders 4/115

$this pseudo-değişkeniyle sınıfın property ve methodlarına erişmeyi öğrenirsin.

$this nedir?

$this, bir methodun içinde bulunduğu örneğe referans veren özel değişkendir (pseudo-variable). Method bir örneğe çağrıldığında, $this o örneği temsil eder.

Bir property'ye method içinden erişmek için $this->name yazılır. Burada -> nesne erişim operatörüdür. $ işareti yalnızca $this başında kullanılır; property adından önce $ yazılmaz.

$this ile method ve property erişimi

$this ile property'lere ek olarak sınıfın diğer methodlarına da erişebilirsin. Method çağrısı $this->greet() biçiminde yapılır.

Örnek: bir Greeter sınıfında greet methodu, $this->name ile $name property'sine ulaşır ve selamlama yazdırır. $this olmadan yalnızca $name yazarsan PHP yerel bir değişken arar ve property'ye erişemezsin.

Uygulama Greeter sınıfını $this ile yaz

Greeter adında bir sınıf tanımla. public $name = "Misafir"; property'sini ekle. greet adında bir method yaz; gövdede echo "Merhaba, " . $this->name . "!\n"; yaz. Methodu çağırma. Sınıftan sonra echo "Greeter hazır" . "\n"; yaz.

Örnek çözümü göster
class Greeter { } içine property, sonra function greet() { echo ... $this->name ...; } yaz, sınıftan sonra echo ekle.
Örnek çözüm:
<?php
// Greeter sınıfını, $name property'sini ve greet methodunu yaz
class Greeter {
    public $name = "Misafir";
    function greet() {
        echo "Merhaba, " . $this->name . "!\n";
    }
}
echo "Greeter hazır" . "\n";

Kendini test et

  1. $this hakkında hangisi doğrudur?

    • $this, sınıfın tüm örneklerini temsil eder.
    • $this, sınıfın adını verir.
    • $this, kalıtım alınan sınıfı gösterir.
    • $this, içinde bulunulan örneğe referans verir.
    Cevabı göster

    $this, içinde bulunulan örneğe referans verir. — Doğru. $this, methodun içinde bulunduğu örneğe referans verir; property ve methodlara erişmeyi sağlar.

  2. $this ile property erişimini tamamla

    class Greeter {
        public $name = "Misafir";
        function greet() {
            echo "Merhaba, " . ____->name . "!";
        }
    }
    Cevabı göster
    class Greeter {
        public $name = "Misafir";
        function greet() {
            echo "Merhaba, " . $this->name . "!";
        }
    }
  3. $this kullanımını eşle

    $this
    Örneğe referans
    ->
    Erişim operatörü
    $this->name
    Property'ye erişim
    $this->greet()
    Method çağrısı

Orta seviye bölümündeki tüm dersler