$this ile sınıf içi erişim
$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
-
$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.
-
$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 . "!"; } } -
$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ı