- var_dump: documentation ( source)
<?php
trait ClosureInATrait
{
public static function getClosureInTrait()
{
return function () {
return __CLASS__;
};
}
}
class ClassConstantTest
{
use ClosureInATrait;
public static function getClosureInClass()
{
return function () {
return __CLASS__;
};
}
}
$closureInClass = ClassConstantTest::getClosureInClass();
$closureInTrait = ClassConstantTest::getClosureInTrait();
echo 'Before bind: ' . PHP_EOL;
echo '__CLASS__ in class: ' . PHP_EOL;
var_dump($closureInClass());
echo '__CLASS__ in Trait: ' . PHP_EOL;
var_dump($closureInTrait());
$a = new \stdClass();
$closureInClass = Closure::bind($closureInClass, null, $a);
$closureInTrait = Closure::bind($closureInTrait, null, $a);
echo PHP_EOL . 'After bind: ' . PHP_EOL;
echo '__CLASS__ in class: ' . PHP_EOL;
var_dump($closureInClass());
echo '__CLASS__ in Trait: ' . PHP_EOL;
var_dump($closureInTrait());