/** * Appends value as element to set. * * @param type $value * @return type appended value */ public function push($value) { if (is_array($value)) { $value = $this->filterByType($value, false); } else { if (!is_null($value) && !$this->isMatchingType($value)) { throw new \InvalidArgumentException('invalid type of value'); } } return parent::push($value); }