code: 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;
      }
docs: {@inheritdoc}