File: backed-duplicate-string.phpt

package info (click to toggle)
php8.4 8.4.11-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 208,108 kB
  • sloc: ansic: 1,060,628; php: 35,345; sh: 11,866; cpp: 7,201; pascal: 4,913; javascript: 3,091; asm: 2,810; yacc: 2,411; makefile: 689; xml: 446; python: 301; awk: 148
file content (42 lines) | stat: -rw-r--r-- 801 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
--TEST--
Backed enums reject duplicate string values
--FILE--
<?php

enum Suit: string {
    case Hearts = 'H';
    case Diamonds = 'D';
    case Clubs = 'C';
    case Spades = 'H';
}

try {
    var_dump(Suit::Hearts);
} catch (Error $e) {
    echo $e->getMessage(), "\n";
}

try {
    var_dump(Suit::Hearts);
} catch (Error $e) {
    echo $e->getMessage(), "\n";
}

try {
    var_dump(Suit::from(42));
} catch (Error $e) {
    echo $e->getMessage(), "\n";
}

try {
    var_dump(Suit::tryFrom('bar'));
} catch (Error $e) {
    echo $e->getMessage(), "\n";
}

?>
--EXPECT--
Duplicate value in enum Suit for cases Hearts and Spades
Duplicate value in enum Suit for cases Hearts and Spades
Duplicate value in enum Suit for cases Hearts and Spades
Duplicate value in enum Suit for cases Hearts and Spades