<?php

// test function declaration:
function function1() {
}

// test method declaration:
class Class1 {
    function function2() {
    } 
}

// test class declaration:
class Class2 {
}


// test interface declaration:
interface Interface1 {
}

// test class instantiation:
new Class1();

// test class extension:
class Class3 extends Class1 {
}

// test interface extension:
interface Interface2 extends Interface1 {
}

// test interface implementation:
class Class4 implements Interface1 {
}

// test variable definition:
class Class5 {
    var $variable1;
    private $variable2;
    static $variable3;
    public $variable4;
    protected $variable5;
}

// test this reference:
class Class6 {
    function function1() {
        $this->function1();
    }
}

// test class trigger:
Class1::function2();

// test function invocation:
function1();

// test method invocation:
Class1::function2();

// test class constant reference:
class Class7 {
	const CONST1 = 0;
}
echo Class7::CONST1;

// test static field reference:
echo Class5::$variable3;

// test global constant reference:
define('GLOBAL_CONST1', 0);
echo GLOBAL_CONST1;

// test multiple interface extension:
interface Interface3 extends Interface1, Interface2 {
}

// test multiple interface implementation:
class Class8 implements Interface1, Interface2 {
}

?>