framework/db/ArrayExpression.php
public function getIterator()
    {
        $value = $this->getValue();
        if ($value instanceof QueryInterface) {
            throw new InvalidConfigException('The ArrayExpression class can not be iterated when the value is a QueryInterface object');
        }
        if ($value === null) {
            $value = [];
        }

        return new \ArrayIterator($value);
    }
public function getIterator()
    {
        $value = $this->getValue();
        if ($value instanceof QueryInterface) {
            throw new InvalidConfigException('The ArrayExpression class can not be iterated when the value is a QueryInterface object');
        }
        if ($value === null) {
            $value = [];
        }

        return new \ArrayIterator($value);
    }
Retrieve an external iterator

@link https://secure.php.net/manual/en/iteratoraggregate.getiterator.php
@return Traversable An instance of an object implementing <b>Iterator</b> or
<b>Traversable</b>
@since 2.0.14.1
@throws InvalidConfigException when ArrayExpression contains QueryInterface object