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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
<?php
/* testPureEnum */
enum Foo
{
case SOME_CASE;
}
/* testBackedIntEnum */
enum Boo: int {
case ONE = 1;
case TWO = 1;
}
/* testBackedStringEnum */
enum Hoo : string
{
case ONE = 'one';
case TWO = 'two';
}
/* testComplexEnum */
enum ComplexEnum: int implements SomeInterface
{
use SomeTrait {
traitMethod as enumMethod;
}
const SOME_CONSTANT = true;
case ONE = 1;
public function someMethod(): bool
{
}
}
/* testEnumWithEnumAsClassName */
enum /* testEnumAsClassNameAfterEnumKeyword */ Enum {}
/* testEnumIsCaseInsensitive */
EnUm Enum {}
/* testEnumUsedAsClassName */
class Enum {
/* testEnumUsedAsClassConstantName */
const ENUM = 'enum';
/* testEnumUsedAsMethodName */
public function enum() {
// Do something.
/* testEnumUsedAsPropertyName */
$this->enum = 'foo';
}
}
/* testEnumUsedAsFunctionName */
function enum()
{
}
/* testDeclarationContainingComment */
enum /* comment */ Name
{
case SOME_CASE;
}
/* testEnumUsedAsNamespaceName */
namespace Enum;
/* testEnumUsedAsPartOfNamespaceName */
namespace My\Enum\Collection;
/* testEnumUsedInObjectInitialization */
$obj = new Enum;
/* testEnumAsFunctionCall */
$var = enum($a, $b);
/* testEnumAsFunctionCallWithNamespace */
var = namespace\enum();
/* testClassConstantFetchWithEnumAsClassName */
echo Enum::CONSTANT;
/* testClassConstantFetchWithEnumAsConstantName */
echo ClassName::ENUM;
/* testParseErrorMissingName */
enum {
case SOME_CASE;
}
/* testParseErrorLiveCoding */
// This must be the last test in the file.
enum
|