Menu
Coddy logo textTech

Yapıcı Metot (__construct)

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

__construct metodu, yeni bir nesne oluşturduğunuzda otomatik olarak çalışan özel bir metottur. Nesnenin özelliklerini başlatır.

İşte bir yapıcı (constructor) içeren sınıf örneği:

<?php
class Dog {
    public $name;
    public $breed;

    public function __construct($name, $breed) {
        $this->name = $name;
        $this->breed = $breed;
    }
}

__construct metodu parametreler alır ve $this kullanarak bunları özelliklere atar.

Yapıcıyı (constructor) kullanarak nesneler oluşturun:

$rex = new Dog("Rex", "German Shepherd");
$buddy = new Dog("Buddy", "Golden Retriever");

new Dog("Rex", "German Shepherd") ifadesini çağırdığınızda, PHP otomatik olarak __construct metodunu çağırır ve argümanları iletir.

Yapıcı (constructor) tarafından ayarlanan özelliklere erişin:

echo $rex->name . "\n";
echo $rex->breed . "\n";
echo $buddy->name . "\n";
echo $buddy->breed . "\n";

Çıktı:

Rex
German Shepherd
Buddy
Golden Retriever

Ayrıca varsayılan parametre değerlerine sahip bir yapıcıya (constructor) sahip olabilirsiniz:

class Cat {
    public $name;
    public $age;

    public function __construct($name, $age = 1) {
        $this->name = $name;
        $this->age = $age;
    }
}

$fluffy = new Cat("Fluffy", 3);
$whiskers = new Cat("Whiskers");  // yaş varsayılan olarak 1'dir

echo $fluffy->name . " is " . $fluffy->age . " years old\n";
echo $whiskers->name . " is " . $whiskers->age . " years old\n";

Çıktı:

Fluffy is 3 years old
Whiskers is 1 years old

Önemli Nokta: __construct metodu, her nesnenin oluşturulduğunda başlangıç verileriyle düzgün bir şekilde kurulmasını sağlar. Sizi, nesne oluşturulduktan sonra özellikleri manuel olarak ayarlama zahmetinden kurtarır.

challenge icon

Görev

Kolay

Bir kitap sistemi uygulamak için size PHP dosyaları (book.php ve driver.php) verilmiştir.

Göreviniz şunları yapmaktır:

  • book.php dosyasındaki Book sınıfını; $title, $author ve $pages özelliklerini başlatan bir __construct metodu ile tamamlayın
  • driver.php dosyasında, "Harry Potter" için "J.K. Rowling" tarafından yazılmış ve 400 sayfa olan bir kitap nesnesi içe aktarın ve oluşturun

Her dosyadaki TODO yorumlarını takip edin.

Kopya kağıdı

__construct metodu, özelliklerini başlatmak için yeni bir nesne oluşturduğunuzda otomatik olarak çalışan özel bir metottur.

Bir sınıf içinde bir yapıcı (constructor) tanımlayın:

<?php
class Dog {
    public $name;
    public $breed;

    public function __construct($name, $breed) {
        $this->name = $name;
        $this->breed = $breed;
    }
}

Yapıcıyı kullanarak nesneler oluşturun:

$rex = new Dog("Rex", "German Shepherd");
$buddy = new Dog("Buddy", "Golden Retriever");

Yapıcı tarafından atanan özelliklere erişin:

echo $rex->name;  // Rex
echo $rex->breed;  // German Shepherd

Yapıcılar varsayılan parametre değerlerine sahip olabilir:

class Cat {
    public $name;
    public $age;

    public function __construct($name, $age = 1) {
        $this->name = $name;
        $this->age = $age;
    }
}

$fluffy = new Cat("Fluffy", 3);
$whiskers = new Cat("Whiskers");  // age defaults to 1

Kendin dene

<?php
require_once 'book.php';

// YAPILACAK: Şu özelliklere sahip bir Book nesnesi oluşturun:
// başlık: "Harry Potter", yazar: "J.K. Rowling", sayfa: 400
$myBook = ?;

echo "'" . $myBook->title . "' by " . $myBook->author . ", " . $myBook->pages . " pages\n";
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