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));
}