<?php class first { private function show() { echo "Call show()\n"; } public function do_show() { $this->show(); } } $t1 = new first(); $t1->do_show(); class second extends first { } //$t2 = new second(); //$t2->do_show(); class third extends second { private function show() { echo "Call show()\n"; } } $t3 = new third(); $t3->do_show(); echo "Done\n";
<?php class first { private static function show() { echo "Call show()\n"; } public static function do_show() { first::show(); } } first::do_show(); class second extends first { } second::do_show(); class third extends second { } third::do_show(); class fail extends third { static function show() { // cannot be redeclared echo "Call show()\n"; } } echo "Done\n";