src/orm/classes/Entity/Collection.php
public function offsetGet($offset)
    {
        if (is_object($offset))
        {
            return parent::offsetGet($offset);
        }

        if (!$this->valid() || $this->key() > $offset)
        {
            $this->rewind();
        }
        while ($this->key() < $offset && $this->valid())
        {
            $this->next();
        }
        if ($this->valid())
        {
            return $this->current();
        }
        else
        {
            throw new OutOfBoundsException(sprintf('Invalid index "%s"', $offset));
        }
    }
public function offsetGet($offset)
    {
        if (is_object($offset))
        {
            return parent::offsetGet($offset);
        }

        if (!$this->valid() || $this->key() > $offset)
        {
            $this->rewind();
        }
        while ($this->key() < $offset && $this->valid())
        {
            $this->next();
        }
        if ($this->valid())
        {
            return $this->current();
        }
        else
        {
            throw new OutOfBoundsException(sprintf('Invalid index "%s"', $offset));
        }
    }
Возвращает объект по объекту (да, по самому себе :) или его индексу

@param int|object $offset

@throws OutOfBoundsException

@return ORM_Entity