parent
73cde64271
commit
606819a8ad
2 changed files with 69 additions and 0 deletions
@ -0,0 +1,24 @@ |
||||
--TEST-- |
||||
array_push retains its required array argument when an unpacked list is empty |
||||
--FILE-- |
||||
<?php |
||||
|
||||
function main(): void |
||||
{ |
||||
$values = []; |
||||
array_push($values, ...[]); |
||||
var_dump($values); |
||||
|
||||
array_push($values, ...[1, 2]); |
||||
var_dump($values); |
||||
} |
||||
?> |
||||
--EXPECT-- |
||||
array(0) { |
||||
} |
||||
array(2) { |
||||
[0]=> |
||||
int(1) |
||||
[1]=> |
||||
int(2) |
||||
} |
||||
@ -0,0 +1,45 @@ |
||||
--TEST-- |
||||
static closure created in an instance method remains a valid delayed callback |
||||
--FILE-- |
||||
<?php |
||||
|
||||
final class CallbackHolder |
||||
{ |
||||
private Closure $callback; |
||||
|
||||
public function __construct(Closure $callback) |
||||
{ |
||||
$this->callback = $callback; |
||||
} |
||||
|
||||
public function invoke(): mixed |
||||
{ |
||||
return ($this->callback)(); |
||||
} |
||||
} |
||||
|
||||
final class CallbackFactory |
||||
{ |
||||
public function create(): CallbackHolder |
||||
{ |
||||
return new CallbackHolder( |
||||
static function (): never { |
||||
throw new LogicException('expected callback'); |
||||
}, |
||||
); |
||||
} |
||||
} |
||||
|
||||
function main(): void |
||||
{ |
||||
$callback = (new CallbackFactory())->create(); |
||||
|
||||
try { |
||||
$callback->invoke(); |
||||
} catch (LogicException $error) { |
||||
echo $error->getMessage(), "\n"; |
||||
} |
||||
} |
||||
?> |
||||
--EXPECT-- |
||||
expected callback |
||||
Loading…
Reference in new issue