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();
Beispiel #2
0
    }
    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();