PHP 7.0.6 Released

ReflectionMethod::getClosure

(PHP >= 5.4.0)

ReflectionMethod::getClosureReturns a dynamically created closure for the method

Description

public Closure ReflectionMethod::getClosure ( object $object )

Warning

This function is currently not documented; only its argument list is available.

Parameters

object

Forbidden for static methods, required for other methods.

Return Values

Returns Closure. Returns NULL in case of an error.

User Contributed Notes

Denis Doronin
3 years ago
You can call private methods with getClosure():

<?php

function call_private_method($object, $method, $args = array()) {
   
$reflection = new ReflectionClass(get_class($object));
   
$closure = $reflection->getMethod($method)->getClosure($object);
    return
call_user_func_array($closure, $args);
}

class
Example {

    private
$x = 1, $y = 10;

    private function
sum() {
        print
$this->x + $this->y;
    }

}

call_private_method(new Example(), 'sum');

?>

Output is 11.
To Top