TypePHP 编译器 https://swoole.com/aot/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

50 lines
981 B

--TEST--
Dynamic calls require explicit refval for by-reference arguments
--FILE--
<?php
function dynamic_increment(&...$values): void
{
foreach ($values as &$value) {
$value++;
}
unset($value);
}
class DynamicReferenceMutator
{
public function suffix(string $suffix, &...$values): void
{
foreach ($values as &$value) {
$value .= $suffix;
}
unset($value);
}
}
function main(): void
{
$function = 'dynamic_increment';
$number = 40;
$function(refval($number));
var_dump($number);
$mutator = new DynamicReferenceMutator();
$method = [$mutator, 'suffix'];
$first = 'one';
$second = 'two';
$method('!', refval($first), refval($second));
var_dump($first, $second);
$closure = static function (&$value): void {
$value .= '?';
};
$closure(refval($second));
var_dump($second);
}
?>
--EXPECT--
int(41)
string(4) "one!"
string(4) "two!"
string(5) "two!?"