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的FTP学习(二)
Oct 09 PHP
别人整理的服务器变量:$_SERVER
Oct 20 PHP
PHP连接MySQL查询结果中文显示乱码解决方法
Oct 25 PHP
PHP获取一个字符串中间一部分字符的方法
Aug 19 PHP
CI框架学习笔记(二) -入口文件index.php
Oct 27 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
Oct 29 PHP
php+mysql结合Ajax实现点赞功能完整实例
Jan 30 PHP
wamp服务器访问php非常缓慢的解决过程
Jul 01 PHP
PHP中调用C/C++制作的动态链接库的教程
Mar 10 PHP
php中让人头疼的浮点数运算分析
Oct 10 PHP
Thinkphp 框架扩展之数据库驱动常用方法小结
Apr 23 PHP
PHP sdk实现在线打包代码示例
Dec 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
PHP的可变变量名的使用方法分享
2012/02/05 PHP
php截取中文字符串不乱码的方法
2013/12/25 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
laravel validate 设置为中文的例子(验证提示为中文)
2019/09/29 PHP
PHP 实现base64编码文件上传出现问题详解
2020/09/01 PHP
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
ASP.NET jQuery 实例9  通过控件hyperlink实现返回顶部效果
2012/02/03 Javascript
有关于JS辅助函数inherit()的问题
2013/04/07 Javascript
JS实现div内部的文字或图片自动循环滚动代码
2013/04/19 Javascript
一个js导致的jquery失效问题的解决方法
2013/11/27 Javascript
利用js(jquery)操作Cookie的方法说明
2013/12/19 Javascript
jQuery+Ajax实现限制查询间隔的方法
2016/06/07 Javascript
js放大镜放大购物图片效果
2017/01/18 Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
2017/03/30 Javascript
JavaScript字符串检索字符的方法
2017/06/23 Javascript
微信禁止下拉查看URL的处理方法
2017/09/28 Javascript
jquery鼠标悬停导航下划线滑出效果
2017/09/29 jQuery
ES10 特性的完整指南小结
2019/03/04 Javascript
使用 node.js 模仿 Apache 小部分功能
2019/07/07 Javascript
[56:00]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第二场
2018/04/10 DOTA
[02:38]DOTA2 夜魇暗潮2020活动介绍官方视频
2020/11/04 DOTA
python利用lxml读写xml格式的文件
2017/08/10 Python
理解Python中的绝对路径和相对路径
2017/08/30 Python
Python模拟随机游走图形效果示例
2018/02/06 Python
PyQt5 在label显示的图片中绘制矩形的方法
2019/06/17 Python
PyTorch和Keras计算模型参数的例子
2020/01/02 Python
屏蔽Django admin界面添加按钮的操作
2020/03/11 Python
python 操作excel表格的方法
2020/12/05 Python
结合CSS3的布局新特征谈谈常见布局方法
2016/01/22 HTML / CSS
详解CSS3中nth-child与nth-of-type的区别
2017/01/05 HTML / CSS
让世界充满爱演讲稿
2014/05/24 职场文书
李开复演讲稿
2014/05/24 职场文书
新教师个人总结
2015/02/06 职场文书
工会文体活动总结
2015/05/07 职场文书
证婚人婚礼致辞
2015/07/28 职场文书
sql时间段切分实现每隔x分钟出一份高速门架车流量
2022/02/28 SQL Server