function heh(D1 $d) { return $d->foo(); // calls the private function }
public function test() { D1::foo(); }
function heh(D1 $d) { return $d->foo(); // no __call, we have access }
public function test() { // This should call C1::foo, not D1::foo $obj = new D1(); $obj->foo(); }
function heh(D1 $d) { return $d->foo(); // calls /our/ private function }