CodeBlanks Logo Icon CodeBlanks

Yapıcıya parametre geçme

PHP kursu · Orta seviye · Ders 8/115

Yapıcı metoda parametre geçip örnek oluşturmada kullanmayı öğrenirsin.

Yapıcıya parametre geçme

Yapıcı metod, tıpkı sıradan fonksiyonlar gibi parametre alabilir. Parametreleri __construct parantezi içine yazarsın:

class User {
    public function __construct($name) {
        echo "Merhaba " . $name;
    }
}

Örnek oluştururken parametreleri new satırında parantez içine verirsin: $user = new User("Ayşe");. PHP önce nesneyi kurar, sonra "Ayşe" değerini yapıcıya geçirir ve metodu çalıştırır.

Birden fazla parametre virgülle ayrılır: __construct($name, $age). Çağrıda da aynı sırayla verirsin: new User("Ayşe", 28).

Çağrı ve tanımın eşleşmesi

Yapıcıya parametre yazdığında, her new çağrısı o parametreleri sağlamak zorundadır. Eğer parametre eksikse PHP hata verir.

Parametre sırası önemlidir. __construct($name, $age) tanımı için new User("Ayşe", 28) çağrısında ilk değer $name'e, ikinci değer $age'ye geçer. Sırayı karıştırırsan değerler yanlış yere gider.

İstersen varsayılan değer de verebilirsin: __construct($name, $role = "user"). Bu durumda new User("Ayşe") çağrısı geçerlidir; $role varsayılan olarak "user" olur.

Uygulama İki parametreli Product yapıcısı

Product adında bir sınıf tanımla. Yapıcı metod __construct($name, $price) imzasıyla iki parametre alsın. Gövdede echo $name . ": " . $price . "\n"; satırıyla ürün adını ve fiyatını yazdır. Sınıfın altında $p = new Product("Kahve", 80); satırıyla bir örnek oluştur.

Örnek çözümü göster
public function __construct($name, $price). Gövdede echo $name . ": " . $price . "\n";. Çağrı: $p = new Product("Kahve", 80);.
Örnek çözüm:
<?php
// Product sınıfını tanımla ve iki parametreli yapıcı ekle
class Product {
    public function __construct($name, $price) {
        echo $name . ": " . $price . "\n";
    }
}
$p = new Product("Kahve", 80);

Kendini test et

  1. Çağrıyı tamamla

    $user = ____;
    Cevabı göster
    $user = new User("Ayşe");
  2. new ile yapıcıya parametre nasıl verilir?

    • new User() yapıp sonra parametre ayrı verilir
    • Yapıcı parametre almaz, yalnızca özellik atanır
    • new User("Ayşe") şeklinde parantez içinde
    • Parametre sınıf adından önce yazılır
    Cevabı göster

    new User("Ayşe") şeklinde parantez içinde — Doğru. new operatörünün parantezine yazdığın değerler __construct'e sırayla geçirilir.

  3. Kavramları eşle

    __construct($name)
    tek parametreli yapıcı
    new User("Ayşe")
    parametreli örnek oluşturma
    $name
    yapıcıdaki parametre değişkeni
    "Ayşe"
    çağrıdan geçen değer

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