示例#1
0
 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));
 }