public function testGet()
{
$array = $this->_data;
$data = new Data($this->_data);
$arrobj = new \ArrayObject($this->_data);
$arrobjExt = new \ArrayObjectExt($this->_data);
if (Env::isHHVM()) {
$data->setFlags(0);
}
Benchmark::compare(array('Array::clean' => function () use($array) {
return $array['prop'];
}, 'Array::@' => function () use($array) {
return @$array['prop'];
}, 'Array::isset' => function () use($array) {
return isset($array['prop']) ? $array['prop'] : null;
}, 'Array::array_key_exists' => function () use($array) {
return array_key_exists('prop', $array) ? $array['prop'] : null;
}, 'ArrayObject::array' => function () use($arrobj) {
return $arrobj['prop'];
}, 'ArrayObject::offsetGet' => function () use($arrobj) {
return $arrobj->offsetGet('prop');
}, 'ArrayObjectExt::array' => function () use($arrobjExt) {
return $arrobjExt['prop'];
}, 'ArrayObjectExt::offsetGet' => function () use($arrobjExt) {
return $arrobjExt->offsetGet('prop');
}, 'Data::get' => function () use($data) {
return $data->get('prop');
}, 'Data::arrow' => function () use($data) {
return $data->prop;
}, 'Data::array' => function () use($data) {
return $data['prop'];
}, 'Data::find' => function () use($data) {
return $data->find('prop');
}, 'Data::offsetGet' => function () use($data) {
return $data->offsetGet('prop');
}), array('name' => 'Get defined var', 'count' => 10000));
}