<?php
function foo (iterable $ints) {
$actualInts = [];
foreach ($ints as $int) {
$actualInts[] = (function (int $int): int {
return $int;
})($int);
}
return $actualInts;
}
function bar (iterable $ints) {
$actualInts = (function (int ... $ints): array {
return $ints;
})(... array_values(is_array($ints) ? $ints : iterator_to_array($ints)));
return $actualInts;
}
function getIt(): Generator {
yield '1';
yield 3;
}
var_dump(foo(['1', 3]));
var_dump(foo(getIt()));
var_dump(bar(['1', 3]));
var_dump(bar(getIt()));
- Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
- array(2) {
[0]=>
int(1)
[1]=>
int(3)
}
array(2) {
[0]=>
int(1)
[1]=>
int(3)
}
array(2) {
[0]=>
int(1)
[1]=>
int(3)
}
array(2) {
[0]=>
int(1)
[1]=>
int(3)
}
- Output for 8.3.5
- Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
array(2) {
[0]=>
int(1)
[1]=>
int(3)
}
array(2) {
[0]=>
int(1)
[1]=>
int(3)
}
array(2) {
[0]=>
int(1)
[1]=>
int(3)
}
array(2) {
[0]=>
int(1)
[1]=>
int(3)
}
preferences:
197.53 ms | 402 KiB | 218 Q