tag.php
protected function valuesArePossible($values)
    {
        $matches = array();
        $widgets = &$this->getWidgets();
        for ($i = 0, $count = count($widgets); $i < $count; $i++) {
            $possible = $widgets[$i]->getAttribute('value');
            if (in_array($possible, $values)) {
                $matches[] = $possible;
            }
        }

        return ($values == $matches);
    }
protected function valuesArePossible($values)
    {
        $matches = array();
        $widgets = &$this->getWidgets();
        for ($i = 0, $count = count($widgets); $i < $count; $i++) {
            $possible = $widgets[$i]->getAttribute('value');
            if (in_array($possible, $values)) {
                $matches[] = $possible;
            }
        }

        return ($values == $matches);
    }
Tests to see if a possible value set is legal.

@param string/array/boolean $values Either a single string, a hash or false for nothing set.

@return bool False if trying to set a missing value.