Tür Sistemi

PHP, davranışsal alt tür ilişkileri ile güçlendirilmiş sembolik bir tür sistemi kullanır. Alt türlerle ilişkiler derleme sırasında sınanırken türlerin doğrulanması çalışma anında dinamik olarak gerçekleştirilir.

PHP'nin tür sistemi, daha karmaşık türler oluşturmak için bir araya getirilebilecek çeşitli temel türleri destekler. Bu türlerden bazıları tür bildirimleri olarak yazılabilir.

Temel türler

Bazı temel türler, dille sıkı bir şekilde bütünleşmiş yerleşik türler olup kullanıcı tanımlı türlerle yeniden türetilemez.

Temel türler:

Sayıl türler

int, float, string veya bool türündeki değerler sayıl olarak kabul edilir.

Kullanıcı tanımlı türler

Özel türleri arayüzler, sınıflar ve sayılamalar ile tanımlamak mümkündür. Bunlar kullanıcı tanımlı türler veya sınıf türleri olarak kabul edilir. Örneğin, Fil adında bir sınıf tanımlanabilir, ardından Fil türündeki nesneler örneklenebilir ve bir işlev Fil türünde bir bağımsız değişken isteyebilir.

Birleşim türleri

Temel türleri birleşik türler halinde birleştirmek mümkündür. PHP, türlerin aşağıdaki şekillerde birleştirilmesine izin verir:

  • Sınıf türlerinin (arayüz ve sınıf isimlerinin) kesişimi.
  • Tür birleşimleri.

Tür kesişimleri (& ile birleşim)

Tür kesişiminde, tek bir sınıf yerine birden çok sınıf türü bildirimine karşılık gelen değerler kabul edilir. Kesişimi oluşturan tekil türler & simgesi ile birleştirilir. Örneğin, T, U ve V türlerinden oluşan bir tür kesişimi T&U&V biçeminde yazılır.

Bileşik türler (| ile birleşim)

Bileşik tür (union), tek bir değer yerine birden fazla türde değer kabul eder. Bileşik türü oluşturan tekil türler | simgesi ile birleştirilir. Örneğin, T, U ve V türlerinden oluşan bir bileşik tür T|U|V biçeminde yazılır. Türlerden biri kesişim içeriyorsa, kesişimin yaylı ayraçlar arasına alınması gerekir: T|(X&Y).

Tür takma adları

PHP iki tür-takma-adı destekler: object|resource|array|string|float|int|bool|null karşılığı olarak mixed ve Traversable|array karşılığı olarak iterable.

Bilginize: PHP kullanıcı tanımlı tür takma adlarını desteklemez.

add a note

User Contributed Notes

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