php-src/ext/reflection/tests/ReflectionFunction_getClosureUsedVariables.phpt
Joe Watkins b227a72285
ReflectionFunctionAbstract::getClosureUsedVariables
Make a distinction at compile time between bind types for static
  variables

  getStaticVariables remains unchanged

  Fixes #80071
2021-05-21 15:25:35 +02:00

60 lines
975 B
PHP

--TEST--
ReflectionFunctionAbstract::getClosureUsedVariables
--FILE--
<?php
$reflector = new ReflectionFunction("strlen");
var_dump($reflector->getClosureUsedVariables());
$function = function() {
static $one = 1;
};
$reflector = new ReflectionFunction($function);
var_dump($reflector->getClosureUsedVariables());
$one = 1;
$two = 2;
$function = function() use ($one, $two) {
static $three = 3;
};
$reflector = new ReflectionFunction($function);
var_dump($reflector->getClosureUsedVariables());
$function = fn() => $three = [$one];
$reflector = new ReflectionFunction($function);
var_dump($reflector->getClosureUsedVariables());
$function = function() use (&$one) {
static $three = 3;
};
$reflector = new ReflectionFunction($function);
var_dump($reflector->getClosureUsedVariables());
?>
--EXPECT--
array(0) {
}
array(0) {
}
array(2) {
["one"]=>
int(1)
["two"]=>
int(2)
}
array(1) {
["one"]=>
int(1)
}
array(1) {
["one"]=>
&int(1)
}