In: Genel


PHP giderek daha fazla özellik kazanıyor. PHP’deki numaralandırmalar en son tekliflerden biridir. PHP’deki numaralandırmalar için açıklama yorumlar için bu istek ile açıklanan

numaralandırmalar sınıfların ve nesnelerin üzerine inşa edilmiştir. Bunun anlamı, aksi belirtilmedikçe, “Enums X durumunda nasıl davranırdı”, “diğer nesne örnekleriyle aynı şekilde” yanıtlanabilir.

Örneğin, birobjectkontrol yazın. Benzer şekilde, numaralandırma adları ve vaka adlarının her ikisi de büyük/küçük harfe duyarsızdır. (Genel olarak sınıflar için zaten geçerli olan büyük/küçük harfe duyarlı dosya sistemlerinde otomatik yükleme hakkında aynı uyarı ile.)

Örneğin, gibi bir sınıf tanımlayarak başlayabiliriz. enum Suit çeşitli durumlarda, yani case Hearts

enum Suit {
  case Hearts;
  case Diamonds;
  case Clubs;
  case Spades;
}

Daha sonra tanımlı durumları şöyle çağırarak kullanırız. Suit::Diamonds;

Örneğin bir fonksiyonumuz olsaydı pick_a_card hangi bir özelliği kabul eder Suit $suit enum Suit’ten herhangi bir enum değeri sağlayabiliriz. Ancak, doğrudan dize değeri sağlamaya çalışırsak, bu, güçlü yazma nedeniyle bir TypeError atar.

$val = Suit::Diamonds;

function pick_a_card(Suit $suit) { ... }

// OK
pick_a_card($val);        

// OK
pick_a_card(Suit::Clubs); 

// throws TypeError
pick_a_card('Spades');    

Bu özellik uygulamasının şu anki durumuyla ilgileniyorsanız, onu burada bulabilirsiniz. https://github.com/php/php-src/pull/6489/files

Kişisel not: Özellikle PHP’nin 7.x sürümlerinden beri hareket ettiği güçlü bir şekilde yazılan yön dikkate alındığında, enum türlerinin PHP için çok uygun olacağına inanıyorum.

Symfony 2020 konferansına katılıyordum ve PHP 8.0 ve JIT dahil yeni özellikler hakkında harika bir ders vardı. adlı bu dersten aldığım içgörüler hakkında bir makale yazdım. PHP 8.0’daki yenilikler: SymfonyWorld 2020

Posta PHP 8.1 RFC’deki Numaralandırmalar ilk ortaya çıktı Milan Latinoviç.

Bir cevap yazın

Ready to Grow Your Business?

We Serve our Clients’ Best Interests with the Best Marketing Solutions. Find out More

How Can We Help You?

Need to bounce off ideas for an upcoming project or digital campaign? Looking to transform your business with the implementation of full potential digital marketing?

For any career inquiries, please visit our careers page here.
[contact-form-7 404 "Bulunamadı"]