我有一个简单的问题,我还没有找到答案,那就是
如何使用内置的Zend验证器来测试float/double 是否大于或等于min?
我已经搜索了一个适合我的请求的答案,我在Zend框架中发现了这个问题GreaterOrEqual验证器,但我的有点不同。此外,我知道我可以创建自己的验证器或复制其中一个在网络上,像这个大于或等于验证器,但我想知道我如何用内置的验证器来做这个验证。
这是一个让你更好理解的例子。
如果我有一个整数,我可以这样实现这个目标:
$Validators = array(new Zend_Validate_Int(), new Zend_Validate_GreaterThan($min - 1));
// Validate the number
相反,如果我有一个浮点数,我不能做这个技巧,正如许多程序员所知道的,试图用浮点数做一些肮脏的事情会产生很多问题,因为舍入问题(每个计算机科学家都应该知道关于浮点算术)。
Thanks to all
这不是你想要的,但我认为这是最简单的:关键是"包容"。
$number->addValidator('Float');
$number->addValidator('Between', false,array('min' => '5,5', 'max' => $greatest_number+1, 'inclusive' => true));
这里有所有的验证器:
Zend_Validate_Abstract Class Reference
所以你的问题的答案是'否',没有大于等于验证器的浮动
在我尝试了许多方法之后,我得出结论,实际上(Zend Framework版本1.11)不可能使用内置验证器(如Phil所建议的)来进行这种验证。
我真的希望他们在下一个版本中添加这个验证器。
如何使用
新Zend_Validate_Callback (函数($value) {如果($value>= 1) {返回true;}返回错误;});