3v4l.org

run code in 300+ PHP versions simultaneously
<?php class DefaultMap implements ArrayAccess { private $array; private $default; public function __construct($default = null) { $this->array = []; $this->default = $default; } public function &offsetGet($key) { if (!isset($this->array[$key])) { $this->array[$key] = $this->default; } return $this->array[$key]; } public function offsetSet($key, $value) { $this->array[$key] = $value; } public function offsetExists($key) { return isset($this->array[$key]); } public function offsetUnset($key) { unset($this->array[$key]); } public function toArray() { return $this->array; } } $map = new DefaultMap(0); $map["foo"]++; var_dump($map->toArray());

preferences:
16.53 ms | 402 KiB | 5 Q