public function testGetUndefined() { $array = $this->_data; $data = new Data($this->_data); $arrobj = new \ArrayObject($this->_data); $arrobjExt = new \ArrayObjectExt($this->_data); Benchmark::compare(array('array::@' => function () use($array) { return @$array['undefined']; }, 'array::isset' => function () use($array) { return isset($array['undefined']) ? $array['undefined'] : null; }, 'array::array_key_exists' => function () use($array) { return array_key_exists('undefined', $array) ? $array['undefined'] : null; }, 'ArrayObject::arrow@' => function () use($arrobj) { return @$arrobj->undefined; }, 'ArrayObject::array@' => function () use($arrobj) { return @$arrobj['undefined']; }, 'ArrayObject::offsetGet@' => function () use($arrobj) { return @$arrobj->offsetGet('undefined'); }, 'ArrayObjectExt::arrow@' => function () use($arrobjExt) { return @$arrobjExt->undefined; }, 'ArrayObjectExt::array@' => function () use($arrobjExt) { return @$arrobjExt['undefined']; }, 'ArrayObjectExt::offsetGet@' => function () use($arrobjExt) { return @$arrobjExt->offsetGet('undefined'); }, 'Data::get' => function () use($data) { return $data->get('undefined'); }, 'Data::arrow@' => function () use($data) { return @$data->undefined; }, 'Data::array@' => function () use($data) { return @$data['undefined']; }, 'Data::find' => function () use($data) { return $data->find('undefined'); }, 'Data::offsetGet@' => function () use($data) { return @$data->offsetGet('undefined'); }), array('name' => 'Get undefined var', 'count' => 10000)); }