function main() { $c = new C(); $d = new D(); $c->foo(); $d->foo(); echo "**************\n"; $c->bar(); $d->bar(); echo "**************\n"; C::foo(); D::bar(); echo "**************\n"; $d->yar(); D::yar(); }
public function doBar() { $this->bar(); // G G B::bar(); // B B C::bar(); // C C D::bar(); // D D F::bar(); // F F G::bar(); // G G H::bar(); // H H parent::bar(); // F G self::bar(); // G G static::bar(); // G G echo "****************\n"; }
} } class D extends C { static $cls = 'D'; public function __construct() { var_dump(isset($this)); var_dump(static::$cls); } public function yar() { var_dump(isset($this)); var_dump(static::$cls); C::yar(); } } $c = new C(); $d = new D(); echo "**************\n"; $c->foo(); $d->foo(); echo "**************\n"; $c->bar(); $d->bar(); echo "**************\n"; C::foo(); D::bar(); echo "**************\n"; $d->yar(); D::yar();
<?php // Call a protected static member from a parent class class C { protected static function foo() { echo "C::foo()\n"; } } class D extends C { function bar() { C::foo(); } } D::bar();