<?php
trait TestTrait
{
private function baz()
{
return 'Hello World';
}
}
class Foo
{
use TestTrait;
public function __construct()
{
echo $this->baz();
}
}
abstract class A
{
const __default = null;
public function __construct()
{
$class = get_class($this);
var_dump(__CLASS__);
$r = new ReflectionClass($class);
$constants = $r->getConstants();
var_dump($constants);
}
}
class B extends A
{
const __default = self::A;
const A = 'a';
const B = 'b';
}
class C extends B
{
const __default = self::C;
const A = 'A';
const C = 'c';
}
//$enum = new C();
$foo = new Foo();