Constantes de enumeração

Enumerações podem incluir constantes, que podem ser públicas, privadas ou protegidas, apesar das privadas e protegidas são equivalentes na prática, pois herança não é permitida.

Uma constante de enum pode se referir a um caso enum:

<?php

enum Tamanho
{
case
Pequeno;
case
Medio;
case
Grande;

public const
Enorme = self::Grande;
}
?>
add a note add a note

User Contributed Notes 1 note

up
2
Hayley Watson
1 year ago
Just to clarify, enum constants *can* contain cases, but they don't *have* to; other constant values are legitimate - including cases of other Enumerations.

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

    public const
Card = Size::Large; // A case from a different enum
}

enum Size
{
    case
Small;
    case
Medium;
    case
Large;

    public const
Scale = 297/210; // A float
}

echo
Suit::Diamonds::Card::Scale; // Getting the constant Scale from the constant Card in a Suit.
?>
To Top