$this Anahtar Sözcüğü
Coddy'nin PHP Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 4 / 91.
$this anahtar sözcüğü, bir sınıfın yöntemleri içindeki geçerli örneğini ifade eder. Geçerli nesnenin özelliklerine erişmenize ve bunları değiştirmenize olanak tanır.
İşte $this kullanan yöntemlere sahip bir sınıf örneği:
<?php
class Car {
public $color;
public $model;
public function honk() {
echo "Beep beep!\n";
}
public function describe() {
echo "I am a " . $this->color . " " . $this->model . "\n";
}
}$this anahtar sözcüğü, yöntemi çağıran nesneye başvurmak için yöntemlerin içinde kullanılır.
Bir car nesnesi oluşturun ve özelliklerini ayarlayın:
$myCar = new Car();
$myCar->color = "Red";
$myCar->model = "Sedan";Şimdi metotları çağırın:
$myCar->honk();
$myCar->describe();Çıktı:
Beep beep!
I am a Red Sedan$myCar->describe() çağrıldığında PHP, $this değerini otomatik olarak $myCar nesnesine başvuracak şekilde ayarlar. Yöntem, hangi nesnenin özelliklerine erişeceğini bu şekilde bilir.
Başka bir car nesneniz olsaydı:
$otherCar = new Car();
$otherCar->color = "Blue";
$otherCar->model = "SUV";
$otherCar->describe(); // Ben bir Blue SUV'yumTemel Nokta: $this her zaman yöntemi çağıran belirli nesneyi ifade eder. Bir yöntem çalıştığında her nesne kendi bağlamına sahip olur.
Görev
KolayCar sınıfını, $this anahtar sözcüğünü kullanarak arabanın yılını, markasını ve modelini şu biçimde yazdıran displayInfo adlı bir yöntem ekleyerek car.php içinde tamamlayın:
"This car is a [year] [make] [model]"
car.php:displayInfoyöntemini ekleyeceğinizCarsınıfı tanımını içerirdriver.php:Carsınıfını içe aktaran ve kullanan ana çalıştırma dosyası (kilitli)
Kendin dene
<?php
require_once 'car.php';
$myCar = new Car();
$myCar->year = 2020;
$myCar->make = "Toyota";
$myCar->model = "Corolla";
$myCar->displayInfo();
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Nesne Yönelimli Programlama bölümündeki tüm dersler
1OOP Temelleri
Harici DosyalarOOP'ye GirişSınıflar ve Nesneler$this Anahtar SözcüğüMetotlarÖzelliklerYapıcı (__construct)Yıkıcı (__destruct)Tekrar - Basit Hesap Makinesi4Kalıtım
Temel Kalıtımparent:: Anahtar SözcüğüMetot Geçersiz Kılmafinal Anahtar SözcüğüSoyut SınıflarTekrar - Çalışan Hiyerarşisi7Kapsülleme
Public, Protected, PrivateErişim Belirleyicileri DerinlemesineGetter ve Setter'larBilgi GizlemeYapıcı Özellik Terfisi (8.0)Tekrar - Öğrenci Kayıt Sistemi10İleri Düzey OOP Kavramları
Composition ve KalıtımBağımlılık EnjeksiyonuAnonim SınıflarEnum'lar (PHP 8.1)Fiber'lar (PHP 8.1)Nesne Klonlamaya Derinlemesine BakışÜreteçler ve Yineleyiciler13Tasarım Kalıpları Bölüm 2
Komut KalıbıAdaptör KalıbıDekoratör KalıbıŞablon Metot KalıbıDurum KalıbıBileşik KalıpDepo Kalıbı2Namespace’ler ve Autoloading
Namespace’lere Girişuse Anahtar SözcüğüPSR-4 Autoloading StandardıComposer AutoloaderTekrar - Düzenli Proje5Arayüzler ve Sözleşmeler
Arayüzlere GirişArayüzleri UygulamaBirden Çok Arayüz UygulamaArayüz ve Soyut Sınıf KarşılaştırmasıArayüzlerle Tür İpuçlarıTekrar - Şekil Hesaplayıcı8Sihirli Metotlar
Sihirli Metotlara Giriş__toString ve __debugInfo__get, __set, __isset, __unset__call ve __callStatic__clone ve Nesne Klonlama__serialize ve __unserializeTekrar - Özel Koleksiyon3Sınıf Özellikleri
Örnek ve Statik ÖzelliklerSınıflarda SabitlerStatik Metotlar ve ÖzelliklerPrivate ve Protected ÖzelliklerSalt Okunur Özellikler (PHP 8.1)Tekrar - Banka Hesabı Yöneticisi6Çok Biçimlilik
Metot Geçersiz Kılmayı Yeniden Ele AlmaArayüzler Yoluyla Çok BiçimlilikTür İpuçları ve Birleşim TürleriGeç Bağlanan Statik ÇağrılarÖzet - Ödeme İşlemcisi9Trait'ler
Trait'lere GirişBirden Çok Trait KullanımıTrait Çakışmalarını ÇözümlemeTrait'lerde Soyut MetotlarTrait'ler ve Kalıtım Karşılaştırması12Tasarım Desenleri 1. Bölüm
Tasarım Desenlerine GirişSingleton DeseniFactory DeseniObserver DeseniStrategy DeseniKendi başına pratik yap: Online PHP derleyicisi