PHP 8.0.26 Released!

Sayılamalar

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
2
esdras-schonevald
6 months 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