name = 'Closure'; $reflection = new ReflectionFunction( $variable ); $ret = array( 'Parameters' => array() ); if ( $val = $reflection->getParameters() ) { foreach ( $val as $parameter ) { // todo http://php.net/manual/en/class.reflectionparameter.php $ret['Parameters'][] = $parameter->name; } } if ( $val = $reflection->getStaticVariables() ) { $ret['Uses'] = $val; } if ( method_exists($reflection, 'getClousureThis') && $val = $reflection->getClosureThis() ) { $ret['Uses']['$this'] = $val; } if ( $val = $reflection->getFileName() ) { $this->value = Kint::shortenPath( $val ) . ':' . $reflection->getStartLine(); } return $ret; } public function isDefaultValueAvailable() { if ( PHP_VERSION_ID === 50316 ) { // PHP bug #62988 try { $this->getDefaultValue(); return true; } catch ( \ReflectionException $e ) { return false; } } return parent::isDefaultValueAvailable(); } }