public function getMatchingIds()
    {
        if (0 === count($this->arrChildFilters)) {
            return array();
        }

        $ids = null;
        foreach ($this->arrChildFilters as $objChildFilter) {
            $matchingIds = $objChildFilter->getMatchingIds();
            if (array() === $matchingIds) {
                // Empty array, no items allowed by this rule, break out.
                return array();
            }

            // If null => all items allowed by this rule => ignore it.
            if (null === $matchingIds) {
                continue;
            }

            if (null === $ids) {
                $ids = $matchingIds;
                continue;
            }

            $ids = array_intersect($ids, $matchingIds);
        }

        return is_array($ids) ? array_values($ids) : null;
    }
public function getMatchingIds()
    {
        if (0 === count($this->arrChildFilters)) {
            return array();
        }

        $ids = null;
        foreach ($this->arrChildFilters as $objChildFilter) {
            $matchingIds = $objChildFilter->getMatchingIds();
            if (array() === $matchingIds) {
                // Empty array, no items allowed by this rule, break out.
                return array();
            }

            // If null => all items allowed by this rule => ignore it.
            if (null === $matchingIds) {
                continue;
            }

            if (null === $ids) {
                $ids = $matchingIds;
                continue;
            }

            $ids = array_intersect($ids, $matchingIds);
        }

        return is_array($ids) ? array_values($ids) : null;
    }
{@inheritdoc}