<?php
class Foo {private $a=1;}
class Bar extends Foo {
function test() {
var_dump($this);
}
}
$closure = (new \ReflectionMethod('Bar','test'))->getClosure(new Bar);
$object = new Foo;
$closure = $closure->bindTo($object, get_class($object));
$closure();
Warning: Cannot bind method Bar::test() to object of class Foo in /in/lsGuQ on line 13
Fatal error: Uncaught Error: Value of type null is not callable in /in/lsGuQ:14
Stack trace:
#0 {main}
thrown in /in/lsGuQ on line 14
Process exited with code 255.
Warning: Cannot bind method Bar::test() to object of class Foo in /in/lsGuQ on line 13
Fatal error: Uncaught Error: Function name must be a string in /in/lsGuQ:14
Stack trace:
#0 {main}
thrown in /in/lsGuQ on line 14
Process exited with code 255.
Output for 7.0.0 - 7.0.20
Warning: Cannot rebind scope of closure created by ReflectionFunctionAbstract::getClosure() in /in/lsGuQ on line 13
Fatal error: Uncaught Error: Function name must be a string in /in/lsGuQ:14
Stack trace:
#0 {main}
thrown in /in/lsGuQ on line 14
Process exited with code 255.