Php Zend Framework 2:数字与整数验证器

Php Zend Framework 2:数字与整数验证器,php,validation,zend-framework,zend-framework2,Php,Validation,Zend Framework,Zend Framework2,什么时候(在什么情况下)应该使用数字验证器,什么时候应该使用Int(IsInt)验证器? 在某些情况下(取决于区域设置),像1243或1.6546这样的值可能通过验证(请看上面链接中的第三个示例) $validator=new Zend\I18n\validator\IsInt(); $validator->isValid(1234);//返回true $validator->isValid(1234.5);//返回false $validator->isValid('1234');//返回tr

什么时候(在什么情况下)应该使用数字验证器,什么时候应该使用Int(IsInt)验证器?

在某些情况下(取决于区域设置),像1243或1.6546这样的值可能通过验证(请看上面链接中的第三个示例)

$validator=new Zend\I18n\validator\IsInt();
$validator->isValid(1234);//返回true
$validator->isValid(1234.5);//返回false

$validator->isValid('1234');//返回true
Zend\I18n\Validator\IsInt
是一个验证器,它使用
NumberFormatter
()验证假定区域设置的数字。例如,数字12345.67在美国是“12345.67”,在法国是“12345.67”,在德国是“12.345.67”

Zend\Validator\Digits
是一个原语。创建它只是为了验证PHP的问题

答案是:

  • 如果您正在使用区域设置,请使用
    Zend\I18n\Validator\IsInt
  • 使用
    Zend\Validator\Digits
    验证字符串中是否只有数字(这意味着任何其他符号,如千位分隔符或逗号,都不会通过此验证程序),并且区域设置对您来说并不重要
$validator = new Zend\I18n\Validator\IsInt();

$validator->isValid(1234);   // returns true
$validator->isValid(1234.5); // returns false
$validator->isValid('1,234'); // returns true <-------