PHP.mk документација

Енумерации

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

language.types.enumerations.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека language.types.enumerations.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
Енумерации

Референца за `language.types.enumerations.php` со подобрена типографија и навигација.

language.types.enumerations.php

Енумерации

(PHP 8 >= 8.1.0)

Основни Енумерации

Енумерациите се слој за ограничување над класи и константи на класи, наменети да обезбедат начин за дефинирање на затворен сет на можни вредности за тип.

<?php
enum Suit
{
case
Hearts;
case
Diamonds;
case
Clubs;
case
Spades;
}

function
do_stuff(Suit $s)
{
// ...
}

do_stuff(Suit::Spades);
?>

За целосна дискусија, видете го Енумерации chapter.

Кастинг

Ако еден enum се претвори во object, не се менува. Ако еден enum се претвори во array, се креира низа со една name клуч (за Чисти енумерации) или низа со две name and value клуч (за Поддржани енумерации). Сите други типови на кастинг ќе резултираат со грешка.

Белешки од корисници 1 белешка

esdras-schonevald
3 години пред
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
}
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.