3v4l.org

run code in 300+ PHP versions simultaneously
<?php class SomeArray extends ArrayObject { public function __construct($array) { var_dump('Called: '.__METHOD__); parent::__construct($array); } public function offsetExists($offset) { var_dump('Called: '.__METHOD__); return parent::offsetExists($offset); } public function offsetGet($offset) { var_dump('Called: '.__METHOD__); return parent::offsetGet($offset); } public function offsetSet($offset, $value) { } public function offsetUnset($offset) { } } $array = new ArrayObject(array('foo' => '')); var_dump(isset($array['foo']), empty($array['foo'])); $array = new SomeArray(array('foo' => '')); var_dump(isset($array['foo']), empty($array['foo']));

preferences:
41.72 ms | 402 KiB | 5 Q