Traits

Enums können Traits verwenden, die sich dann genauso verhalten wie in Klassen. Hierbei ist zu beachten, dass die in einer Enum verwendeten Traits keine Eigenschaften enthalten dürfen, sondern nur Methoden und statische Methoden. Ein Trait mit Eigenschaften führt zu einem fatalen Fehler.

<?php

interface Colorful
{
public function
color(): string;
}

trait
Rectangle
{
public function
shape(): string {
return
"Rectangle";
}
}

enum
Suit implements Colorful
{
use
Rectangle;

case
Hearts;
case
Diamonds;
case
Clubs;
case
Spades;

public function
color(): string
{
return match(
$this) {
Suit::Hearts, Suit::Diamonds => 'Red',
Suit::Clubs, Suit::Spades => 'Black',
};
}
}
?>
add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top