PHP Conference Japan 2024

Nesnelerden farkları

Sayılamalar, sınıflar ve nesnelerde yerleşik bulunabilirse de, nesnelerle ilgili işlevselliğin tamamını kullanamaz. Özellikle, sayılamalar durumlu olamaz.

  • Kurucular ve yıkıcılar kullanılamaz.
  • Kalıtım desteklenmez. Sayılamalar ne genişletebilir ne de genişletilebilir.
  • Statik ve nesne özelliklere izin verilmez.
  • Bir sayılamanın kopyalanması, kılıfların tekil örnekler olması gerektiğinden desteklenmez.
  • Aşağıda sıralananlar dışında kalan Sihirli yöntemlere izin verilmez.
  • Sayılamalar kullanılmadan önce bildirilmelidir.

Aşağıdaki nesne işlevselliği kullanılabilir ve diğer nesnelerdeki davranış elde edilir:

  • Public, private ve protected yöntemler.
  • Public, private ve protected static yöntemler.
  • Public, private ve protected sabitler.
  • Sayılamalar çok sayıda arayüz gerçekleyebilir.
  • Sayılamalar ve kılıfların kendilerine ekli öznitelikleri olabilir. TARGET_CLASS hedef süzgeci sayılamaların kendilerini içerir. TARGET_CLASS_CONST hedef süzgeci ise sayılama kılıflarını içerir.
  • __call, __callStatic, ve __invoke sihirli yöntemleri
  • __CLASS__ ve __FUNCTION__ sabitleri normal olarak davranır.

Bir sayılama türündeki ::class sihirli sabiti, tamamen bir nesnedeki gibi isim alanlı tür adı olarak değerlendirilir. Bir kılıf örneğindeki ::class sihirli sabiti ise, o türün tekil örneği olduğu için sayılama olarak değerlendirilir.

Ayrıca, sayılama kılıfları doğrudan new ile örneklenemediği gibi yansıtma içinde ReflectionClass::newInstanceWithoutConstructor() ile de örneklenemez.

<?php

$trefl
= new Deste();
// Hata: enum Deste örneklenemez
$kör = (new ReflectionClass(Deste::class))->KurucusuzYeniÖrnek()
// Hata: enum Deste örneklenemez
?>
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top