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
Dec 13 PHP
php面向对象全攻略 (五) 封装性
Sep 30 PHP
PHP 柱状图实现代码
Dec 04 PHP
Php获取金书网的书名的实现代码
Jun 11 PHP
表格展示无限级分类(PHP版)
Aug 21 PHP
基于AppServ,XAMPP,WAMP配置php.ini去掉警告信息(NOTICE)的方法详解
May 07 PHP
解析PHP汉字转换拼音的类
Jun 18 PHP
thinkphp3.2.2前后台公用类架构问题分析
Nov 25 PHP
Laravel 5框架学习之路由、控制器和视图简介
Apr 07 PHP
Smarty环境配置与使用入门教程
May 11 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
Jul 04 PHP
php中get_object_vars()在数组的实例用法
Feb 22 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
在任意字符集下正常显示网页的方法二(续)
2007/04/01 PHP
PHP 5.0对象模型深度探索之对象复制
2008/03/27 PHP
PHP多线程抓取网页实现代码
2010/07/22 PHP
修改php.ini以达到屏蔽错误信息并记录日志
2013/06/16 PHP
PHP实现Unicode编码相互转换的方法示例
2020/11/17 PHP
Javascript常用运算符(Operators)-javascript基础教程
2007/12/14 Javascript
js鼠标及对象坐标控制属性详细解析
2013/12/14 Javascript
jquery图片轮播插件仿支付宝2013版全屏图片幻灯片
2014/04/03 Javascript
解释&amp;&amp;和||在javascript中的另类用法
2014/07/28 Javascript
js实现将选中内容分享到新浪或腾讯微博
2015/12/16 Javascript
【经典源码收藏】jQuery实用代码片段(筛选,搜索,样式,清除默认值,多选等)
2016/06/07 Javascript
JS判断输入的字符串是否是数字的方法(正则表达式)
2016/11/29 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的三大方法
2017/01/22 Javascript
Nodejs异步回调之异常处理实例分析
2018/06/22 NodeJs
vue设置导航栏、侧边栏为公共页面的例子
2019/11/01 Javascript
JavaScript实现拖拽盒子效果
2020/02/06 Javascript
[02:04]2014DOTA2国际邀请赛 DK一个时代的落幕
2014/07/21 DOTA
python利用elaphe制作二维条形码实现代码
2012/05/25 Python
Python中List.index()方法的使用教程
2015/05/20 Python
python通过加号运算符操作列表的方法
2015/07/28 Python
Selenium基于PIL实现拼接滚动截图
2020/04/10 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
Python如何将装饰器定义为类
2020/07/30 Python
CSS3 新增选择器的实例
2019/11/13 HTML / CSS
印尼最大的在线购物网站:MatahariMall.com
2016/08/26 全球购物
匡威英国官网:Converse英国
2018/12/02 全球购物
高中生自我评价个人范文
2013/11/09 职场文书
驾驶员岗位职责
2014/01/29 职场文书
学生顶撞老师的检讨书
2014/09/17 职场文书
领导班子党的群众路线教育实践活动对照检查材料
2014/09/25 职场文书
劳动保障个人工作总结
2015/03/04 职场文书
教师廉政准则心得体会
2016/01/20 职场文书
心理学培训心得体会
2016/01/22 职场文书
Python趣味挑战之教你用pygame画进度条
2021/05/31 Python
Python 实现Mac 屏幕截图详解
2021/10/05 Python
“鬼灭之刃”热度不减,其成功背后的原因是什么?
2022/03/22 日漫