/** * Prepends value as element to set. * * @param type $value * @return type prepended value */ public function unshift($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::unshift($value); }