PHP
Getter ve setter metotlar
Getter ve setter methodlarla private property'lere kontrollü erişim sağlarsın.
Getter ve setter nedir?
Getter ve setter, private property'lere kontrollü erişim sağlayan metotlardır. Getter okur, setter yazar.
PHP'de yaygın bir örüntü: private int $price; tanımlar, getPrice(): int ile okur, setPrice(int $price): void ile yazarsın. Setter içinde doğrulama yapabilirsin; örneğin negatif fiyatı reddedebilirsin.
Bu örüntü, dışarıdan doğrudan erişimi engellemenin yanında, değer değiştiğinde ek mantık (loglama, hesaplama) çalıştırma imkânı da verir. Bazı framework'ler sihirli __get ve __set metotlarını da kullanır; bunları başka bir derste göreceğiz.
Getter örneği ve salt-okunur property
Bir getter, private property'nin değerini döndüren public metottur. Adı genelde get + property adıdır: getName, getPrice, getBalance.
Örnek: class Product { private int $price; public function getPrice(): int { return $this->price; } }. Burada dışarıdan $product->price yazılamaz ama $product->getPrice() ile değer okunabilir.
Getter'lar salt okunur (read-only) property'ler yaratmak için de kullanılır: bir setPrice vermezsen, fiyat yalnızca sınıf içi kodla (örneğin yapıcı ile) belirlenir ve sonradan değiştirilemez.
Uygulama Setter ile doğrulama yapan Product sınıfı
Bir Product sınıfı tanımla. private int $price = 0 property'si olsun. public function setPrice(int $price): void metodu ekle; metod içinde if ($price < 0) { return; } ile negatif değer reddedilsin, sonra $this->price = $price atasın. public function getPrice(): int metodu return $this->price döndürsün. Sonra $product = new Product() oluştur, önce $product->setPrice(-50) (reddedilir), sonra $product->setPrice(200) çağır ve echo $product->getPrice() . "\n" yazdır.
Örnek çözümü göster
private $price tanımla, setPrice içinde if ($price < 0) return; sonra $this->price = $price. getPrice return $this->price döndürsün.
Örnek çözüm:
<?php
// Product sınıfını setter ile doğrulayarak tanımla
class Product {
private int $price = 0;
public function setPrice(int $price): void {
if ($price < 0) {
return;
}
$this->price = $price;
}
public function getPrice(): int {
return $this->price;
}
}
$product = new Product();
$product->setPrice(-50);
$product->setPrice(200);
echo $product->getPrice() . "\n";
Kendini test et
-
Getter ve setter ifadelerini eşleştir
- getName()
- Property okur
- setName($val)
- Property yazar
- Doğrulama
- Setter içinde olur
- return $this->name
- Getter gövdesi
-
Getter gövdesini tamamla
public function getPrice(): int {
return ____;
}
Cevabı göster
public function getPrice(): int {
return $this->price;
}
-
Setter metodunun temel amacı nedir?
- Property'yi silmek
- Property'yi yok saymak
- Property'ye rastgele değer atamak
- Property'ye değer atarken doğrulama yapmayı
Cevabı göster
Property'ye değer atarken doğrulama yapmayı — Doğru. Setter, private property'ye kontrollü ve doğrulamalı değer atamayı sağlar.
Sıradaki ders: Özet - Görünürlük