Friday, October 24, 2025
HomeLanguagesPHP | ReflectionMethod getClosure() Function

PHP | ReflectionMethod getClosure() Function

The ReflectionMethod::getClosure() function is an inbuilt function in PHP which is used to return a dynamically created closure for the method otherwise, return NULL in case of an error.

Syntax: 

Closure ReflectionMethod::getClosure ( $object )

Parameters: This function accepts a parameter object which is the specified user-defined class object.

Return Value: This function returns a dynamically created closure for the method otherwise, return NULL in case of an error.

Below programs illustrate the ReflectionMethod::getClosure() function in PHP: 

Program_1:  

PHP




<?php
 
// Initializing a user-defined class
class Company {
 
    protected function neveropen($name) {
        return 'GFG' . $name;
    }
}
 
// Using ReflectionMethod() over the class Company
$A = new ReflectionMethod('Company', 'neveropen');
 
// Calling the getClosure() function
$B = $A->getClosure(new Company());
 
// Getting a dynamically created closure
// for the method otherwise, return NULL
// in case of an error.
var_dump($B);
?>


Output: 

object(Closure)#3 (2) {
  ["this"]=>
  object(Company)#2 (0) {
  }
  ["parameter"]=>
  array(1) {
    ["$name"]=>
    string(10) "<required>"
  }
}

 

Program_2: 

PHP




<?php
  
// Initializing some user-defined classes
class Department1 {
  
    protected function HR($name) {
        return 'hr' . $name;
    }
}
class Department2 {
  
    protected function Coding($name) {
        return 'coding' . $name;
    }
}
class Department3 {
  
    protected function Marketing($name) {
        return 'marketing' . $name;
    }
}
  
// Using ReflectionMethod() over the above classes
$A = new ReflectionMethod('Department1', 'HR');
$B = new ReflectionMethod('Department2', 'Coding');
$C = new ReflectionMethod('Department3', 'Marketing');
  
// Calling the getClosure() function and
// Getting a dynamically created closure
// for the method otherwise, return NULL
// in case of an error.
var_dump($A->getClosure(new Department1()));
var_dump($B->getClosure(new Department2()));
var_dump($C->getClosure(new Department3()));
?>


Output: 

object(Closure)#5 (2) {
  ["this"]=>
  object(Department1)#4 (0) {
  }
  ["parameter"]=>
  array(1) {
    ["$name"]=>
    string(10) "<required>"
  }
}
object(Closure)#4 (2) {
  ["this"]=>
  object(Department2)#5 (0) {
  }
  ["parameter"]=>
  array(1) {
    ["$name"]=>
    string(10) "<required>"
  }
}
object(Closure)#5 (2) {
  ["this"]=>
  object(Department3)#4 (0) {
  }
  ["parameter"]=>
  array(1) {
    ["$name"]=>
    string(10) "<required>"
  }
}

 

Reference: https://www.php.net/manual/en/reflectionmethod.getclosure.php
 

RELATED ARTICLES

Most Popular

Dominic
32361 POSTS0 COMMENTS
Milvus
88 POSTS0 COMMENTS
Nango Kala
6728 POSTS0 COMMENTS
Nicole Veronica
11892 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11954 POSTS0 COMMENTS
Shaida Kate Naidoo
6852 POSTS0 COMMENTS
Ted Musemwa
7113 POSTS0 COMMENTS
Thapelo Manthata
6805 POSTS0 COMMENTS
Umr Jansen
6801 POSTS0 COMMENTS