code: public function offsetGet($offset)
      {
          if ($offset === true) {
              return $this->trueValue;
          }
          if ($offset === false) {
              return $this->falseValue;
          }
          if (is_int($offset) || is_string($offset)) {
              return $this->standardStore[$offset];
          }
          if (is_float($offset)) {
              return $this->floatStore[(string) $offset];
          }
          if (is_object($offset)) {
              return $this->objectStore->offsetGet($offset);
          }
          if (is_array($offset)) {
              // offsetGet is often called directly after offsetExists, so optimize to avoid second loop:
              if ($this->lastArrayKey === $offset) {
                  return $this->lastArrayValue;
              }
              foreach ($this->arrayKeys as $index => $entry) {
                  if ($entry === $offset) {
                      return $this->arrayValues[$index];
                  }
              }
          }
          if ($offset === null) {
              return $this->nullValue;
          }
  
          return null;
      }
docs: Offset to retrieve
  
  @link http://php.net/manual/en/arrayaccess.offsetget.php
  
  @param mixed $offset <p>
  The offset to retrieve.
  </p>
  
  @return mixed Can return all value types.