如果float / double等于或大于/小于min,如何在Zend Framework中验证?

时间:2011-10-18 00:14:46

标签: php zend-framework zend-validate

我有一个简单的问题,我没有找到答案,那就是

如何使用内置的Zend Validator来测试 float / dobule 是否大于或等于min?

我已经找到了符合我要求的答案,我发现了这个问题GreaterOrEqual validator in Zend Framework但我的有点不同。此外,我知道我可以创建自己的Validator或复制其中一个像Greater Than or Equal Validator这样的网络,但我想知道如何使用内置的验证器进行验证。

这是一个让你更好理解的例子。

如果我有一个整数,我可以用这种方式实现这个目标:

$Validators = array(new Zend_Validate_Int(), new Zend_Validate_GreaterThan($min - 1));
// Validate the number

相反,如果我有一个浮点数,我不能做这个技巧,正如许多程序员所知,尝试用浮点数做脏事可能会因为舍入问题而产生很多问题({{3} })。

感谢所有

3 个答案:

答案 0 :(得分:2)

这不是你要求的,但我认为这是最简单的: 关键是'无礼'。

    $number->addValidator('Float');
    $number->addValidator('Between', false,array('min' => '5,5', 'max' => $greatest_number+1, 'inclusive' => true));

这里有所有验证器:

Zend_Validate_Abstract Class Reference

所以你的问题的答案是'不',浮点数没有大于或等于验证者。

答案 1 :(得分:2)

在我尝试了很多方法后,我得出结论实际上(Zend Framework版本1.11)使用内置验证器进行这种验证是不可能的(如Phil所建议的那样)。

我真的希望他们会在下一个版本中添加这个验证器。

答案 2 :(得分:-1)

使用

怎么样?
  

new Zend_Validate_Callback(         function($ value){           if($ value> = 1){             返回true;           }           返回false; });