- var_dump: documentation ( source)
<?php
trait ClosureInATrait
{
public static function getConstInTrait()
{
return __LINE__;
}
}
class ClassConstantTest
{
use ClosureInATrait;
public static function getConstInClass()
{
return __CLASS__;
}
}
$closureInClass = (new ReflectionMethod('ClassConstantTest','getConstInClass'))->getClosure();
$closureInTrait = (new ReflectionMethod('ClassConstantTest','getConstInTrait'))->getClosure();
echo 'Closure before bind: ' . PHP_EOL;
echo 'Class closure: ' . PHP_EOL;
var_dump($closureInClass());
echo 'Trait closure: ' . PHP_EOL;
var_dump($closureInTrait());
$closureInClass = Closure::bind($closureInClass, null, 'stdClass');
$closureInTrait = Closure::bind($closureInTrait, null, 'stdClass');
echo 'Closure after bind: ' . PHP_EOL;
echo 'Class closure: ' . PHP_EOL;
var_dump($closureInClass());
echo 'Trait closure: ' . PHP_EOL;
var_dump($closureInTrait());