protected function compareValues($field_name, $reference_value, $allow_null, callable $compare_with, $validation_failed_message)
    {
        if (empty($field_name)) {
            throw new InvalidArgumentException("Value '$field_name' is not a valid field name");
        }

        if (array_key_exists($field_name, $this->field_values)) {
            if ($this->field_values[$field_name] === null) {
                if ($allow_null) {
                    return true;
                } else {
                    return $this->failPresenceValidation($field_name);
                }
            }

            if (call_user_func($compare_with, $this->field_values[$field_name], $reference_value)) {
                return true;
            } else {
                $this->addFieldError($field_name, $validation_failed_message);

                return false;
            }
        } else {
            return $this->failPresenceValidation($field_name);
        }
    }
protected function compareValues($field_name, $reference_value, $allow_null, callable $compare_with, $validation_failed_message)
    {
        if (empty($field_name)) {
            throw new InvalidArgumentException("Value '$field_name' is not a valid field name");
        }

        if (array_key_exists($field_name, $this->field_values)) {
            if ($this->field_values[$field_name] === null) {
                if ($allow_null) {
                    return true;
                } else {
                    return $this->failPresenceValidation($field_name);
                }
            }

            if (call_user_func($compare_with, $this->field_values[$field_name], $reference_value)) {
                return true;
            } else {
                $this->addFieldError($field_name, $validation_failed_message);

                return false;
            }
        } else {
            return $this->failPresenceValidation($field_name);
        }
    }
protected function compareValues ( $ field_name , $ reference_value , $ allow_null , callable $ compare_with , $ validation_failed_message ) { if ( empty ( $ field_name ) ) { throw new InvalidArgumentException ( "Value '$field_name' is not a valid field name" ) ; } if ( array_key_exists ( $ field_name , $ this -> field_values ) ) { if ( $ this -> field_values [ $ field_name ] === null ) { if ( $ allow_null ) { return true ; } else { return $ this -> failPresenceValidation ( $ field_name ) ; } } if ( call_user_func ( $ compare_with , $ this -> field_values [ $ field_name ] , $ reference_value ) ) { return true ; } else { $ this -> addFieldError ( $ field_name , $ validation_failed_message ) ; return false ; } } else { return $ this -> failPresenceValidation ( $ field_name ) ; } }
Validate field value by comparing it to a reference value using a closure.

@param  string   $field_name
@param  mixed    $reference_value
@param  bool     $allow_null
@param  callable $compare_with
@param  string   $validation_failed_message
@return bool
Validate field value by comparing it to a reference value using a closure .