<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet"
        integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.3.0/css/all.min.css"
        integrity="sha512-SzlrxWUlpfuzQ+pcUCosxcglQRNAq/DZjVsC0lE40xsADsfeQoEypE+enwcOiGjk/bSuGGKHEyjSoQ1zVisanQ=="
        crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
</html>
<?php

/* testInvalidTokenPassed */
echo MY_CONSTANT;

/* testClosure */
$closure = function() {};

/* testAnonClassWithParens */
$anonClass = new class() {};

/* testAnonClassWithParens2 */
$class = new class() {
    private $property = 'test';
    public function test() {}
};

/* testAnonClassWithoutParens */
$anonClass = new class {};

/* testAnonClassExtendsWithoutParens */
$class = new class extends SomeClass {
    private $property = 'test';
    public function test() {}
};

/* testFunction */
function functionName() {}

/* testFunctionReturnByRef */
function & functionNameByRef() {}

/* testClass */
abstract class ClassName {
    /* testMethod */
    public function methodName() {}

    /* testAbstractMethod */
    abstract protected function abstractMethodName();

    /* testMethodReturnByRef */
    private function &MethodNameByRef();
}

/* testExtendedClass */
class ExtendedClass extends Foo {}

/* testInterface */
interface InterfaceName {}

/* testTrait */
trait TraitName {
    /* testFunctionEndingWithNumber */
    function ValidNameEndingWithNumber5(){}
}

/* testClassWithNumber */
class ClassWith1Number implements SomeInterface {}

/* testInterfaceWithNumbers */
interface InterfaceWith12345Numbers extends AnotherInterface {}

/* testClassWithCommentsAndNewLines */
class /* comment */

// phpcs:ignore Standard.Cat.SniffName -- for reasons
    ClassWithCommentsAndNewLines {}

/* testFunctionFn */
function fn() {}

/* testPureEnum */
enum Foo
{
    case SOME_CASE;
}

/* testBackedEnumSpaceBetweenNameAndColon */
enum Hoo : string
{
    case ONE = 'one';
    case TWO = 'two';
}

/* testBackedEnumNoSpaceBetweenNameAndColon */
enum Suit: int implements Colorful, CardGame {}

/* testFunctionReturnByRefWithReservedKeywordEach */
function &each() {}

/* testFunctionReturnByRefWithReservedKeywordParent */
function &parent() {}

/* testFunctionReturnByRefWithReservedKeywordSelf */
function &self() {}

/* testFunctionReturnByRefWithReservedKeywordStatic */
function &static() {}
