Menu
Coddy logo textTech

$this Anahtar Kelimesi

Coddy'nin PHP Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 4 / 91.

$this anahtar kelimesi, bir sınıfın metotları içindeki mevcut örneğine atıfta bulunur. Mevcut nesnenin özelliklerine erişmenize ve bunları değiştirmenize olanak tanır.

İşte $this kullanan metotlara 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 kelimesi, metotların içinde, metodu çağıran nesneye atıfta bulunmak için kullanılır.

Bir araba 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() metodunu çağırdığınızda, PHP otomatik olarak $this değişkenini $myCar nesnesini referans alacak şekilde ayarlar. Metot, hangi nesnenin özelliklerine erişeceğini bu sayede bilir.

Eğer başka bir araba nesneniz olsaydı:

$otherCar = new Car();
$otherCar->color = "Blue";
$otherCar->model = "SUV";
$otherCar->describe(); // Ben Mavi bir SUV'um

Anahtar Nokta: $this her zaman metodu çağıran belirli nesneye atıfta bulunur. Bir metod çalıştığında her nesne kendi bağlamını alır.

challenge icon

Görev

Kolay

car.php dosyasındaki Car sınıfını, arabanın yılını, markasını ve modelini şu formatta yazdırmak için $this anahtar kelimesini kullanan displayInfo adlı bir metot ekleyerek tamamlayın:

"This car is a [year] [make] [model]"

  • car.php: displayInfo metodunu ekleyeceğiniz Car sınıfı tanımını içerir
  • driver.php: Car sınıfını içe aktaran ve kullanan ana yürütme dosyası (kilitli)

Kopya kağıdı

$this anahtar kelimesi, bir sınıfın metotları içindeki mevcut örneğine atıfta bulunarak, mevcut nesnenin özelliklerine erişmenize ve bunları değiştirmenize olanak tanır.

Bir sınıf içinde $this kullanımı:

<?php
class Car {
    public $color;
    public $model;

    public function describe() {
        echo "I am a " . $this->color . " " . $this->model . "\n";
    }
}

Bir nesne oluşturma ve metotları çağırma:

$myCar = new Car();
$myCar->color = "Red";
$myCar->model = "Sedan";
$myCar->describe(); // I am a Red Sedan

$myCar->describe() metodunu çağırdığınızda, PHP otomatik olarak $this ifadesini $myCar nesnesine atıfta bulunacak şekilde ayarlar. Bir metot çalıştığında her nesne kendi bağlamını alır, bu nedenle $this her zaman metodu çağıran belirli nesneye atıfta bulunur.

Kendin dene

<?php
require_once 'car.php';

$myCar = new Car();
$myCar->year = 2020;
$myCar->make = "Toyota";
$myCar->model = "Corolla";

$myCar->displayInfo();
quiz iconKendini test et

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