/** * test arrayMergeRecursive() */ public function testMergeRecursive() { $this->assertEquals(array(), Idun_Array::mergeRecursive(array(), array())); $this->assertEquals(array('foo' => 'bar'), Idun_Array::mergeRecursive(array(), array('foo' => 'bar'))); $this->assertEquals(array('foo' => 'bar'), Idun_Array::mergeRecursive(array('foo' => 'bar'), array())); $this->assertEquals(array('foo' => array('key' => 'bar'), 'key' => 'value'), Idun_Array::mergeRecursive(array('foo' => array(), 'key' => 'value'), array('foo' => array('key' => 'bar')))); $this->assertEquals(array('key' => array('sub' => 'way')), Idun_Array::mergeRecursive(array('key' => 'value'), array('key' => array('sub' => 'way')))); $this->assertEquals(array('key' => 'value'), Idun_Array::mergeRecursive(array('key' => array('sub' => 'way')), array('key' => 'value'))); }
/** * Filter value by given definition and/or configuration. * * @access protected * @param mixed $value Value to validate * @param mixed $default Default value if $value is not valid * @param integer $filter Filter definition * @param array $options Filter configuration * @return mixed */ protected function _filter($value, $default = null, $filter = null, array $options = null) { if ($options === null) { $options = array(); } if (!empty($options['flags'])) { $options['flags'] |= FILTER_NULL_ON_FAILURE; } else { $options = Idun_Array::mergeRecursive($options, array('flags' => FILTER_NULL_ON_FAILURE)); } if (!is_int($filter) && !is_numeric($filter)) { $mapping = array('int' => FILTER_VALIDATE_INT, 'integer' => FILTER_VALIDATE_INT, 'float' => FILTER_VALIDATE_FLOAT, 'double' => FILTER_VALIDATE_FLOAT, 'ip' => FILTER_VALIDATE_IP, 'url' => FILTER_VALIDATE_URL, 'email' => FILTER_VALIDATE_EMAIL, 'mail' => FILTER_VALIDATE_EMAIL, 'bool' => FILTER_VALIDATE_BOOLEAN, 'boolean' => FILTER_VALIDATE_BOOLEAN, 'regex' => FILTER_VALIDATE_REGEXP, 'regexp' => FILTER_VALIDATE_REGEXP); if (!isset($mapping[$filter])) { throw new Idun_Controller_Request_Exception(sprintf('Unknown filter type "%s".', $filter)); } $filter = $mapping[$filter]; } if (($value = filter_var($value, $filter, $options)) === null) { $value = $default; } return $value; }