欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-10-13 19:06:02
复制代码 代码如下:

复制代码 代码如下:

<?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);
?>