zf框架的校验器使用使用示例(自定义校验器和校验器链)

  

复制代码 代码如下:

  <?php

  require_once("Zend/Loader.php");

  //引入校验器类和效验器的功能类(Int),与自定义接口类;

  Zend_Loader::loadClass('Zend_Validate');

  Zend_Loader::loadClass('Zend_Validate_Int');

  Zend_Loader::loadClass('Zend_Validate_Interface');

  //增加自定义校验器功能类(GongBeiNum)[公倍数]

  Class GongBeiNum implements Zend_Validate_Interface

  {

  //声明接口里的错误信息报告属性

  protected $_messages = array();

  //声明接口里的校验方法

  public function isValid($num)

  {

  if (!($num%3==0) && !($num%5==0))

  {

  //如果校验失败,则讲错误信息返回值给错误信息报告属性

  $this -> _messages[] = "你所输入的数值不是3和5的公倍数!";

  //终止程序

  return false;

  }

  //返回真

  return true;

  }

  //定义接口的报错方法

  public function getMessages()

  {

  return $this -> _messages;

  }

  //定义提取错误信息(可无)

  public function getErrors()

  {

  }

  }

  //类外定义检测公倍数方法

  function check_num($num)

  {

  //实例化校验器类

  $Validate = new Zend_Validate();

  //添加校验器功能功能类、添加自定义校验器功能类,形成校验器链

  $Validate -> addValidator(new Zend_Validate_Int())

  -> addValidator(new GongBeiNum());

  //校验参数

  if (!$Validate -> isValid($num))

  {

  //如果错误循环错误信息并输出

  foreach ($Validate -> getMessages() as $value)

  {

  echo $value . "<br>";

  return false;

  }

  }

  }

  //指定判断的值

  $num1 = '15';

  //运行校验方法

  check_num($num1);

  ?>