Example #1
0
 function testFilterArray()
 {
     $arr = array('ololo', 'wow', 123);
     $this->assertEquals(array(2 => 123), Filter::Arr($arr, 'is_numeric'), 'Ключи массива сохраняются');
     $f = function (&$var) {
         if ($var > 1) {
             return false;
         }
         if ($var > 0) {
             $var = 'ololo';
         }
         return true;
     };
     $arr = array(0, false, 1, 2, 3);
     $exp = array(0, false, 'ololo');
     $this->assertEquals($exp, $res = Filter::Arr($arr, $f), 'Нулевые значения корректно обрабатываются');
     $this->assertFalse($res[1], 'Типы не изменились');
 }
Example #2
0
 /** Проверка по списку фильтров */
 protected function validateFilters()
 {
     if (!empty($this->value) && !empty($this->filters)) {
         foreach ($this->filters as $filter) {
             if (is_array($this->value) && $this->isMultipleChoiceAllowed()) {
                 $this->value = Filter::Arr($this->value, $filter, null);
                 $bad = empty($this->value);
             } else {
                 $bad = is_null(Filter::Value($this->value, $filter, null));
             }
             if ($bad) {
                 $this->addError(sprintf($this->tmpl_err_wrong, $this->getName()));
                 return false;
             }
         }
     }
     return true;
 }
Example #3
0
File: URL.php Project: sqrt-pro/url
 /**
  * Получить значение параметра в виде массива.
  * Если передан один параметр - он будет в массиве
  * $filter - callable или regexp, в результате будет оставлены только значения проходящие фильтр
  * $default - значение по-умолчанию, если значение не задано или не проходит фильтр
  */
 public function getParameterAsArray($name, $filter = null, $default = array())
 {
     if (!$this->hasParameter($name)) {
         return $default;
     }
     return Filter::Arr((array) $this->parameters[$name], $filter, $default);
 }