Exemplo n.º 1
0
function test()
{
    $a = X::foo();
    $a();
    $a = Y::foo();
    $a();
    $a = X::bar();
    $a();
    $a = Y::bar();
    $a();
    $x = new X();
    $a = $x->bar();
    $a();
    $x = new Y();
    $a = $x->bar();
    $a();
    $a = X::bar_nonstatic();
    $a();
    $a = Y::bar_nonstatic();
    $a();
    $x = new X();
    $a = $x->bar_nonstatic();
    $a();
    $x = new Y();
    $a = $x->bar_nonstatic();
    $a();
}
Exemplo n.º 2
0
function test($str)
{
    X::bar($str);
    (new X())->bar($str);
    Y::bar($str);
    (new Y())->bar($str);
}
Exemplo n.º 3
0
}
class Z extends Y
{
    public function zoo2()
    {
        return "zoo2/" . $this->nonexistingzoo(8, 8, 8);
    }
    public function zoo()
    {
        return $this->bar() . $this->zoo2() . X::nonexisting1(3);
    }
}
// calling static methods resolved in compile time
echo X::nonexistingfoo(1, 2, 3);
echo call_user_func_array(array("X", "nonexisting2"), array(10, 20, 30));
echo Y::nonexistingfoo(1, 2, 3);
echo Y::nonexistingfoo2(4);
echo call_user_func_array(array("Y", "nonexisting3"), array("a", 'b', 'c'));
echo Z::nonexistingstatic();
// calling instance methods
$x = new X();
echo $x->bar();
echo $x->non_existing_func(1, 2, 3);
echo call_user_func(array($x, "foo"), 5, 6, 7);
$y = new Y();
echo $y->bar();
echo $y->nonexisting4(9, 8, 7);
echo call_user_func(array($y, "bar"), 4, 5, 6);
echo call_user_func(array($y, "nonexisting5"), 333, 666, 999);
$z = new Z();
echo $z->zoo();
Exemplo n.º 4
0
<?php

class X
{
    function ref(&$ref)
    {
        $ref = 1;
    }
    function bar()
    {
        $this->ref($this->priv);
    }
}
class Y extends X
{
    private $priv;
}
class Z extends Y
{
}
$z = new Z();
$z->bar();
var_dump($z);
$y = new Y();
$y->bar();
var_dump($y);