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


Posted in PHP onMarch 13, 2014
<?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);
?>
PHP 相关文章推荐
main.php
Dec 09 PHP
小文件php+SQLite存储方案
Sep 04 PHP
基于php使用memcache存储session的详解
Jun 25 PHP
CI框架中site_url()和base_url()的区别
Jan 07 PHP
php获取本周星期一具体日期的方法
Apr 20 PHP
thinkphp3.2.3 分页代码分享
Jul 28 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
May 26 PHP
PHP批量删除jQuery操作
Jul 23 PHP
PHP实现超简单的SSL加密解密、验证及签名的方法示例
Aug 28 PHP
弹出模态框modal的实现方法及实例
Sep 19 PHP
Laravel 在views中加载公共页面的实现代码
Oct 22 PHP
Yii框架安装简明教程
May 15 PHP
使用PHP导出Redis数据到另一个Redis中的代码
Mar 12 #PHP
PHP的变量类型和作用域详解
Mar 12 #PHP
PHP四大安全策略
Mar 12 #PHP
PHP中4个加速、缓存扩展的区别和选用建议
Mar 12 #PHP
php使用websocket示例详解
Mar 12 #PHP
php截取字符串之截取utf8或gbk编码的中英文字符串示例
Mar 12 #PHP
php实现快速排序的三种方法分享
Mar 12 #PHP
You might like
用PHP查询搜索引擎排名位置的代码
2010/01/05 PHP
PHP中file_exists()判断中文文件名无效的解决方法
2014/11/12 PHP
PHP房贷计算器实例代码,等额本息,等额本金
2017/04/01 PHP
Thinkphp5+uploadify实现的文件上传功能示例
2018/05/26 PHP
Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例
2019/10/12 PHP
javascript EXCEL 操作类代码
2009/07/30 Javascript
JavaScript高级程序设计 阅读笔记(四) ECMAScript中的类型转换
2012/02/27 Javascript
jquery结合CSS使用validate实现漂亮的验证
2015/01/29 Javascript
moment.js轻松实现获取当前日期是当年的第几周
2015/02/05 Javascript
JavaScript中消除闭包的一般方法介绍
2015/03/16 Javascript
jQuery+css实现的时钟效果(兼容各浏览器)
2016/01/27 Javascript
NodeJS的Promise的用法解析
2016/05/05 NodeJs
JS动态加载脚本并执行回调操作
2016/08/24 Javascript
让DIV的滚动条自动滚动到最底部的3种方法(推荐)
2016/09/24 Javascript
详解Angularjs 如何自定义Img的ng-load 事件
2017/02/15 Javascript
JS实现列表页面隔行变色效果
2017/03/25 Javascript
Node.js实现文件上传的示例
2017/06/28 Javascript
基于twbsPagination.js分页插件使用心得(分享)
2017/10/21 Javascript
node.js支持多用户web终端实现及安全方案
2017/11/29 Javascript
微信小程序实现刷脸登录
2018/05/25 Javascript
微信小程序渲染性能调优小结
2019/07/30 Javascript
JavaScript实现PC端横向轮播图
2020/02/07 Javascript
ES5和ES6中类的区别总结
2020/12/21 Javascript
一键搞定python连接mysql驱动有关问题(windows版本)
2016/04/23 Python
Pycharm学习教程(2) 代码风格
2017/05/02 Python
Django Channels 实现点对点实时聊天和消息推送功能
2019/07/17 Python
在Keras中CNN联合LSTM进行分类实例
2020/06/29 Python
Django正则URL匹配实现流程解析
2020/11/13 Python
html5中如何将图片的绝对路径转换成文件对象
2018/01/11 HTML / CSS
雅虎笔试题(字符串操作)
2015/03/24 面试题
C#面试题问题集
2016/04/02 面试题
几道Java和数据库的面试题
2013/05/30 面试题
《歌唱二小放牛郎》教学反思
2014/04/19 职场文书
团代会闭幕词
2015/01/28 职场文书
读完《骆驼祥子》的观后感!
2019/07/05 职场文书
如何设计高效合理的MySQL查询语句
2021/05/26 MySQL