class C1 { protected $p; static function make() { return new static(); } } class C2 extends C1 { static function f1() { $c = parent::make(); $c->p = 2; } static function f2() { $c = self::make(); $c->p = 2; echo $c->p; } static function f3() { $c = self::make(); $c->p = 2; echo $c->p; } } C2::f1(); C2::f2(); C2::f3();
} function __get($var) { echo "C8::__get({$var})\n"; return $this->g($var); } function g($var) { echo "C8::g({$var})\n"; return $this->{$var}; } } $c1 = new C1(); $c1->f1(); var_dump($a1); $c1->f2(); $c1->f3(); $c2 = new C2(); $c2->f1(); $c3 = new C3(); $c3->f1(); $c4 = new C4(); $c4->f1(); $c5 = new C5(); $c5->f1(); $c6 = new C6(); $c6->f1(); $c7 = new C7(); $c7->f1(); $c8 = new C8(); $c8->f1();