1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 16:22:37 +01:00
Files
archived-php-src/ext/spl/tests/array_020.phpt
Nikita Popov f556a30b92 Narrow ArrayIterator::key() return type
This can only return string|int|null, not any key type.
2021-07-15 11:03:50 +02:00

62 lines
1.0 KiB
PHP

--TEST--
SPL: ArrayIterator overloading
--FILE--
<?php
class ArrayIteratorEx extends ArrayIterator
{
function rewind(): void
{
echo __METHOD__ . "\n";
ArrayIterator::rewind();
}
function valid(): bool
{
echo __METHOD__ . "\n";
return ArrayIterator::valid();
}
function key(): string|int|null
{
echo __METHOD__ . "\n";
return ArrayIterator::key();
}
function current(): mixed
{
echo __METHOD__ . "\n";
return ArrayIterator::current();
}
function next(): void
{
echo __METHOD__ . "\n";
ArrayIterator::next();
}
}
$ar = new ArrayIteratorEx(array(1,2));
foreach($ar as $k => $v)
{
var_dump($k);
var_dump($v);
}
?>
--EXPECT--
ArrayIteratorEx::rewind
ArrayIteratorEx::valid
ArrayIteratorEx::current
ArrayIteratorEx::key
int(0)
int(1)
ArrayIteratorEx::next
ArrayIteratorEx::valid
ArrayIteratorEx::current
ArrayIteratorEx::key
int(1)
int(2)
ArrayIteratorEx::next
ArrayIteratorEx::valid