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 相关文章推荐
PHP开源开发框架ZendFramework使用中常见问题说明及解决方案
Jun 12 PHP
php生成excel列名超过26列大于Z时的解决方法
Dec 29 PHP
PHP中PDO的事务处理分析
Apr 07 PHP
php+MySql实现登录系统与输出浏览者信息功能
Jul 01 PHP
PHP Oauth授权和本地加密实现方法
Aug 12 PHP
PHP入门教程之PHP操作MySQL的方法分析
Sep 11 PHP
PHP获取input输入框中的值去数据库比较显示出来
Nov 16 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
Mar 16 PHP
CI(CodeIgniter)框架视图中加载视图的方法
Mar 24 PHP
php项目中类的自动加载实例讲解
Sep 12 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
Oct 30 PHP
PHP7 新增功能
Mar 09 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
PHPExcel实现表格导出功能示例【带有多个工作sheet】
2018/06/13 PHP
php生成静态页面并实现预览功能
2019/06/27 PHP
jQuery ui 1.7更新小结
2009/08/15 Javascript
javascript 动态生成私有变量访问器
2009/12/06 Javascript
一个js拖拽的效果类和dom-drag.js浅析
2010/07/17 Javascript
jquery 单击li防止重复加载的实现代码
2010/12/24 Javascript
鼠标移动到图片名上,显示图片的简单实例
2013/07/14 Javascript
js判断鼠标左、中、右键哪个被点击的方法
2015/01/27 Javascript
JS实现自动固定顶部的悬浮菜单栏效果
2015/09/16 Javascript
javascript新闻跑马灯实例代码
2020/07/29 Javascript
js流动式效果显示当前系统时间
2016/05/16 Javascript
AngularJS入门教程之过滤器用法示例
2016/11/02 Javascript
jQuery简单实现遍历单选框的方法
2017/03/06 Javascript
react-native使用react-navigation进行页面跳转导航的示例
2017/09/07 Javascript
vue-router重定向不刷新问题的解决
2018/06/25 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
2018/10/19 Javascript
jquery获取file表单选择文件的路径、名字、大小、类型
2019/01/18 jQuery
Nuxt的路由动画效果案例
2020/11/06 Javascript
python实现超简单端口转发的方法
2015/03/13 Python
在Django中同时使用多个配置文件的方法
2015/07/22 Python
Python脚本实时处理log文件的方法
2016/11/21 Python
Python3.5多进程原理与用法实例分析
2019/04/05 Python
python将图片转base64,实现前端显示
2020/01/09 Python
将tensorflow模型打包成PB文件及PB文件读取方式
2020/01/23 Python
浅谈pymysql查询语句中带有in时传递参数的问题
2020/06/05 Python
使用Python解析Chrome浏览器书签的示例
2020/11/13 Python
手把手教你用Django执行原生SQL的方法
2021/02/18 Python
飞利浦美国官网:Philips美国
2020/02/28 全球购物
UNIX文件类型
2013/08/29 面试题
旅游管理毕业生自荐信
2013/11/05 职场文书
教你打造完美的创业计划书
2014/01/06 职场文书
九年级物理教学反思
2014/01/29 职场文书
2014年冬季防火方案
2014/05/21 职场文书
查摆问题整改措施
2014/10/24 职场文书
医院志愿者活动总结
2015/05/06 职场文书
三种方式清除vue路由跳转router-link的历史记录
2022/04/10 Vue.js