Example #1
0
}
class B extends A
{
    public function func($str)
    {
        static $avoid_crash = 0;
        if ($avoid_crash++ == 1) {
            print "This method shouldn't be called when using parent::func!\n";
            return;
        }
        call_user_func_array(array($this, 'parent::func'), array($str));
    }
    private function func2($str)
    {
        var_dump(__METHOD__ . ': ' . $str);
    }
    protected function func3($str)
    {
        var_dump(__METHOD__ . ': ' . $str);
    }
}
class C extends B
{
    public function func($str)
    {
        parent::func($str);
    }
}
$c = new C();
$c->func('This should work!');
Example #2
0
<?php

abstract class B
{
    private function priv()
    {
        echo "B::priv\n";
    }
    function func()
    {
        $this->priv();
        var_dump(get_class_methods($this));
    }
}
class C extends B
{
    private function priv()
    {
        echo "C::priv\n";
    }
}
$obj = new C();
$obj->func();