function __construct($filter = null) { // set default filter if not provided if (is_null($filter)) { $filter = new BlogFilter(); } $count = 0; foreach (scandir(POSTS_PATH, SCANDIR_SORT_DESCENDING) as $fileName) { // create blogPost object for each post and check against $filter if (preg_match(POST_REGEX, $fileName)) { $post = new BlogPost($fileName); if ($post->matchFilter($filter)) { // check if the matched post appears in the correct filter group if ($count >= $filter->group * $filter->limit) { // add post to blogList object if (count($this->list) < $filter->limit) { $this->list[] = $post; } else { $this->atEnd = false; break; } } } $count++; } } }