PHP
public erişim
public property ve methodların her yerden erişilebilir olduğunu öğrenirsin.
public erişim niteleyicisi
Bir sınıfın property'sini (özellik) veya method'unu public yaparsan, ona her yerden erişilir: sınıfın içinden, alt sınıflardan ve sınıf dışından. public, en geniş görünürlüktür (access modifier).
PHP 8.3'te bir property'yi public string $name biçiminde tanımlarsın. Dışarıdan $obj->name ile okur ya da yazarsın. Eski PHP 4 tarzı var $name de hâlâ public kabul edilir; ama modern kodda açıkça public yazmak önerilir.
Bir method da public function getName() biçiminde tanımlanırsa dışarıdan çağrılabilir. Bu, sınıfın dışarıya açtığı arayüzdür.
public property ve method kullanımı
Bir public property doğrudan okunup yazılabilir. Örneğin bir User sınıfında public string $name tanımlarsan; $user = new User() dedikten sonra $user->name = "Ayşe" ile değer verebilir, echo $user->name ile okuyabilirsin.
Benzer şekilde public function greet() tanımlarsan, $user->greet() ile dışarıdan çağırabilirsin.
Ancak dikkat: public property'ler doğrudan değiştirilebildiği için iç tutarlılık gerektiren verilerde daha sıkı görünürlük kullanmak daha güvenlidir. Bunu sonraki derslerde göreceğiz.
Uygulama public property ile User sınıfı
Bir User sınıfı tanımla. İki public property olsun: $name ve $email (ikisi de string). Bir __construct(string $name, string $email) yapıcı metodu property'lere değer atasın. Sonra $user = new User("Ayşe", "ayse@example.com") ile örnek oluştur ve echo $user->name . "\n" ile adı yazdır.
Örnek çözümü göster
public property tanımla, yapıcıda $this->name = $name ata, dışarıdan $user->name ile eriş.
Örnek çözüm:
<?php
// User sınıfını tanımla ve dışarıdan erişimi test et
class User {
public string $name;
public string $email;
public function __construct(string $name, string $email) {
$this->name = $name;
$this->email = $email;
}
}
$user = new User("Ayşe", "ayse@example.com");
echo $user->name . "\n";
Kendini test et
-
public erişim hangi durumda uygundur?
- Yalnızca alt sınıfların erişeceği property'ler için
- Dışarıdan doğrudan erişilmesi gereken property'ler için
- Yalnızca tanımlandığı sınıftan erişilecek property'ler için
- Hiçbir yerden erişilmemesi gereken property'ler için
Cevabı göster
Dışarıdan doğrudan erişilmesi gereken property'ler için — Doğru. public, dışarıdan doğrudan erişilecek property'ler ve methodlar içindir.
-
public property tanımla
class User {
____
}
Cevabı göster
class User {
public $name;
}
-
public ile ilgili ifadeleri eşleştir
- public property
- Her yerden erişilebilir
- public method
- Dışarıdan çağrılabilir
- $user->name
- Dışarıdan erişim örneği
- public string $name
- Property tanımı
Sıradaki ders: protected erişim