Numaralandırmalar (Enum'lar)
PHP 8.1'in tür güvenli, destekli ve saf enum'larıyla değer kümeleri tanımlayın.
Numaralandırmalar (Enum'lar), CoddyKit'te ücretsiz bir PHP Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, PHP Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. PHP Academy kursu toplamda 4 dersten oluşur.
Numaralandırmalar Nedir?
PHP 8.1, bir değişkeni önceden belirlenmiş adlandırılmış değerler kümesiyle sınırlayan özel bir tür olan enum yapısını kullanıma sundu. Bu, kodu daha açıklayıcı ve tür güvenli kılar.
Saf Numaralandırma (Birim Numaralandırması)
Saf bir numaralandırmada, ilişkili değerleri olmayan adlandırılmış durumlar bulunur. Durum, yön veya durum kodu için idealdir.
<?php
enum Status {
case Active;
case Inactive;
case Banned;
}
$s = Status::Active;
echo $s->name; // "Active"Değer Destekli Numaralandırma
Değer destekli bir numaralandırma, her duruma bir skaler değer (int veya dize) atar; bu, veritabanında saklama veya API yanıtları için kullanışlıdır.
<?php
enum Color: string {
case Red = "red";
case Green = "green";
case Blue = "blue";
}
echo Color::Red->value; // "red"from ve TryFrom
Ham bir değeri from() (geçersiz değerde istisna oluşturur) veya tryFrom() (geçersiz değerde null döndürür) ile yeniden bir numaralandırma durumuna dönüştürün.
<?php
$color = Color::from("red"); // Color::Red
$maybe = Color::tryFrom("purple"); // nullTür İpuçlarında Numaralandırmalar
Parametreler ve dönüş türleri için tür ipucu olarak numaralandırmaları kullanın; PHP yalnızca geçerli durumların aktarılmasını zorunlu kılar.
<?php
function paint(Color $color): void {
echo "Painting with ".$color->value;
}
paint(Color::Blue); // "Painting with blue"match İçinde Numaralandırma Durumları
Numaralandırmalar, tüm durumları kapsayan işlemler için match ifadeleriyle mükemmel uyum sağlar.
<?php
$label = match($status) {
Status::Active => "Active user",
Status::Inactive => "Inactive account",
Status::Banned => "Banned",
};
// PHP can warn if cases are unhandledNumaralandırma Arayüz Uygular
Numaralandırmalar arayüzler uygulayabilir ve böylece çok biçimli davranışa izin verir.
<?php
interface HasLabel {
public function label(): string;
}
enum Status: string implements HasLabel {
case Active = "active";
case Inactive = "inactive";
public function label(): string {
return ucfirst($this->value);
}
}Numaralandırma Yöntemleri
Numaralandırmalar yöntemlere sahip olabilir; ancak kurucuya veya değiştirilebilir özelliklere sahip olamaz.
<?php
enum Suit: string {
case Hearts = "H";
case Diamonds = "D";
case Clubs = "C";
case Spades = "S";
public function color(): string {
return match($this) {
Suit::Hearts, Suit::Diamonds => "red",
Suit::Clubs, Suit::Spades => "black",
};
}
}Numaralandırma Sabitleri
Numaralandırmalar, ilişkili skaler değerler için durumlar yerine sabitlere sahip olabilir.
<?php
enum Direction {
case North;
case South;
const DEFAULT = self::North;
}Durumları Listeleme
EnumName::cases(), tüm numaralandırma durumu nesnelerinden oluşan bir dizi döndürür; açılır liste seçenekleri oluşturmak için kullanışlıdır.
<?php
$options = Color::cases();
foreach ($options as $c) {
echo $c->name.": ".$c->value."\n";
}Numaralandırmalar ve Sınıf Sabitleri
Numaralandırmalar tür güvenliğini zorunlu kılar; bir Status numaralandırmasının beklendiği yerde 1 tamsayısını yanlışlıkla aktaramazsınız. Sınıf sabitleri böyle bir güvence sağlamaz.
Özet
Numaralandırmalar, sabit değer kümelerini tür güvenliğiyle ifade eder. Durumlar için saf numaralandırmaları, veritabanı veya API değerlerine ihtiyaç duyduğunuzda değer destekli numaralandırmaları kullanın. Güvenli ayrıştırma için tryFrom() kullanın.
Hızlı Kontrol
Hiçbir durum eşleşmezse Color::tryFrom("invalid") ne döndürür?
Sıkça Sorulan Sorular
“Numaralandırmalar (Enum'lar)” dersi ücretsiz mi?
Evet — “Numaralandırmalar (Enum'lar)” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve PHP Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. PHP Academy kursu toplamda 4 dersten oluşur.
“Numaralandırmalar (Enum'lar)” dersinde ne öğreneceğim?
PHP 8.1'in tür güvenli, destekli ve saf enum'larıyla değer kümeleri tanımlayın. PHP Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
PHP Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te PHP Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Numaralandırmalar (Enum'lar)” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu PHP Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her PHP Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Match İfadesi ve Adlandırılmış Bağımsız Değişkenler
- Nullsafe Operatörü ve Birleşim Türleri
- Numaralandırmalar (Enum'lar)
- Fiber'lar: İşbirlikçi Eşzamanlılık