PHP Conference Nagoya 2025

Sayılamalar

(PHP 8 >= 8.1.0)

Temel Sayılamalar

Sayılamalar, bir veri türü için kapalı bir olası değerler kümesi tanımlamanın bir yolunu sağlamayı amaçlayan sınıfların ve sınıf sabitlerinin üzerinde kısıtlayıcı bir katmandır.

<?php
enum Deste
{
case
Kupalar;
case
Karolar;
case
Sinekler;
case
Maçalar;
}
function
do_stuff(Deste $s)
{
// ...
}
do_stuff(Deste::Maçalar);
?>

Daha ayrıntılı bilgi için Sayılamalar bölümüne bakılabilir.

Dönüşüm

Bir enum tür bir object türe dönüştülürse, değişikliğe uğramaz. Bir enum tür bir array türe dönüştülürse, ya sadece name anahtarı olan bir dizi (saf sayılama) ya da name ve value anahtarlarına sahip bir dizi (Destekli sayılama) oluşur. Tüm diğer dönüşüm türleri bir hatayla sonuçlanır.

add a note

User Contributed Notes 1 note

up
46
esdras-schonevald
2 years ago
https://gist.github.com/esdras-schonevald/71a6730e6191c5e9c053e2f65b839eec

<?php

declare(strict_types=1);

/**
* This is a sample
* How to use Enum to create a custom exception cases
* PHP 8.1^
*/

enum MyExceptionCase {
case
InvalidMethod;
case
InvalidProperty;
case
Timeout;
}

class
MyException extends Exception {
function
__construct(private MyExceptionCase $case){
match(
$case){
MyExceptionCase::InvalidMethod => parent::__construct("Bad Request - Invalid Method", 400),
MyExceptionCase::InvalidProperty => parent::__construct("Bad Request - Invalid Property", 400),
MyExceptionCase::Timeout => parent::__construct("Bad Request - Timeout", 400)
};
}
}

// Testing my custom exception class
try {
throw new
MyException(MyExceptionCase::InvalidMethod);
} catch (
MyException $myE) {
echo
$myE->getMessage(); // Bad Request - Invalid Method
}
To Top