<?php
class Item {
private $id;
public function __construct(int $id)
{
$this->id = $id;
}
public function id() : int
{
return $this->id;
}
}
class Collection extends ArrayIterator
{
public function current() : Item
{
return parent::current();
}
}
$items = [];
for ($i=0; $i<10; $i++) {
$items[] = new Item($i);
}
$collection = new Collection($items);
foreach ($collection as $item) {
printf("\tClass: %s. Calling id() method returns %d (%s)\n", get_class($item), $item->id(), gettype($item->id()));
}
- Output for 7.0.0 - 7.0.30, 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.6
- Class: Item. Calling id() method returns 0 (integer)
Class: Item. Calling id() method returns 1 (integer)
Class: Item. Calling id() method returns 2 (integer)
Class: Item. Calling id() method returns 3 (integer)
Class: Item. Calling id() method returns 4 (integer)
Class: Item. Calling id() method returns 5 (integer)
Class: Item. Calling id() method returns 6 (integer)
Class: Item. Calling id() method returns 7 (integer)
Class: Item. Calling id() method returns 8 (integer)
Class: Item. Calling id() method returns 9 (integer)
- Output for 5.5.0 - 5.5.38, 5.6.0 - 5.6.30
- Parse error: syntax error, unexpected ':', expecting ';' or '{' in /in/VSf6k on line 9
Process exited with code 255.
preferences:
260.28 ms | 402 KiB | 294 Q