当前位置: 代码迷 >> .NET Framework >> ZendFramework学习第三章(核心组件—校验器之效验链的施用)
  详细解决方案

ZendFramework学习第三章(核心组件—校验器之效验链的施用)

热度:65   发布时间:2016-05-02 00:19:56.0
ZendFramework学习第三章(核心组件—校验器之效验链的使用)

和过滤连类似这东西,就是连续添加多个效验规则,当所有规则功过时,返回true,只要其中有一个不ok就返回false。

首先为Zend_Validate实例化一个类,然后通过addValidator()方法向校验器链中添加校验器。方法如下:

addValidator($validator,$breakChainOnFailure);

 其中参数$validator为Zend_Validate子类实例。可选参数$breakChainOnFailure为布尔变量,为真的时候效验链遇到失败就不再向下检验,为假其反!

例子如下:

 

//使用过滤链
  function c_content($value)
  {
   $v_Chain=new Zend_Validate();
   $v_Chain->addValidator(new Zend_Validate_StringLength(8,12))
     ->addValidator(new Zend_Validate_Alnum());
   
   if ($v_Chain->isValid($value))
   {
    echo "输入的值:";
    echo $value."有效!";
    
   }
   else
   {
    echo "输入的值:";
    echo $value."无效!";
    foreach ($v_Chain->getMessageLength() as $message)
    {
     echo "$message<p>";
    }
   }
  }
  
  $temp1="123345";
  $temp2="¥¥%&*……&*";
  $temp3="dsafsdaf";
  c_content($temp1);
  c_content($temp2);
  c_content($temp3);

上述代码在自定义函数中创建了一个效验链,并分别向其中添加了StringLength校验器和Alnum校验器。这两个校验器分别用于检测字符长度在某个范围之内的内容是否只包含字母与数值。