CodeBlanks Logo Icon CodeBlanks

Sınıf iskeleti

PHP kursu · Orta seviye · Ders 20/115

Bir koleksiyon sınıfı tanımlayıp yapıcıyla iç durumu kurarsın.

Yapıcı metot ile iç durumu kurmak

Bir koleksiyon yarattığında çoğu zaman başlangıç verisi vermek istersin. __construct metodu, new ile örnek oluşturulduğunda otomatik çalışır ve sınıfın iç durumunu kurar.

Collection sınıfında yapıcı metot, bir dizi parametre alır ve bunu $this->items property'sine atar. Böylece new Collection(["elma", "armut"]) dediğinde koleksiyon iki öğeyle başlar.

$this ile property başlatma

Yapıcı metot içinde $this sözde değişkeni, oluşturulmakta olan örneğe işaret eder. Parametreyi property'ye atamak için $this->items = $initial; yazarsın.

Parametre için varsayılan değer vermek iyi bir alışkanlıktır: array $initial = []. Böylece new Collection() (boş) ve new Collection(["elma"]) (dolu) her ikisi de çalışır.

Uygulama Yapıcı metot ekle

Collection sınıfına public function __construct(array $initial = []) yapıcı metodunu ekle. İçinde $this->items = $initial; ile parametreyi property'ye ata. Sonra $c = new Collection(["elma", "armut"]); ile iki öğeli örnek oluştur ve echo count($c->items); ile sayıyı yazdır.

Örnek çözümü göster
Sınıf içine public function __construct(array $initial = []) { $this->items = $initial; } ekle. new Collection(["elma", "armut"]) ile örnek oluştur, echo count($c->items); ile yazdır.
Örnek çözüm:
<?php
// Collection sınıfının iskeleti
class Collection {
    public array $items = [];

    public function __construct(array $initial = []) {
        $this->items = $initial;
    }
}

$c = new Collection(["elma", "armut"]);
echo count($c->items);

Kendini test et

  1. Yapıcı metot ne zaman çalışır?

    • Sınıf tanımlanırken
    • Betik başladığında otomatik olarak
    • new ile örnek oluşturulduğunda
    • Bir metot çağrıldığında
    Cevabı göster

    new ile örnek oluşturulduğunda — Doğru. __construct, new ile örnek oluşturulduğunda otomatik çalışır.

  2. Yapıcıya parametre ekle

    public function __construct(array ____) {
        $this->items = $initial;
    }
    Cevabı göster
    public function __construct(array $initial = []) {
        $this->items = $initial;
    }
  3. Yapıcı metot kavramlarını eşleştir

    __construct
    Yapıcı metot adı
    $this->items
    Property ataması
    new Collection()
    Örnek oluşturma
    array $initial
    Parametre türü

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