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 创建文件(文件夹)以及目录操作代码
Mar 04 PHP
深入eAccelerator与memcached的区别详解
Jun 06 PHP
浅析php中如何在有限的内存中读取大文件
Jul 02 PHP
对淘宝URL中ID提取的PHP代码
Sep 01 PHP
CodeIgniter输出中文乱码的两种解决办法
Jun 12 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
Jun 26 PHP
php微信公众平台开发之获取用户基本信息
Aug 17 PHP
简单了解PHP编程中数组的指针的使用
Nov 30 PHP
Apache无法自动跳转却显示目录的解决方法
Nov 30 PHP
PHP封装的数据库保存session功能类
Jul 11 PHP
PHP实现下载远程图片保存到本地的方法
Jun 19 PHP
ThinkPHP5.1验证码功能实现的示例代码
Jun 08 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
网页游戏开发入门教程二(游戏模式+系统)
2009/11/02 PHP
动态加载iframe
2006/06/16 Javascript
图片轮换效果实现代码(点击按钮停止执行)
2013/04/12 Javascript
js判断两个日期是否相等的方法
2013/09/10 Javascript
JQuery实现表格动态增加行并对新行添加事件
2014/07/30 Javascript
通过location.replace禁止浏览器后退防止重复提交
2014/09/04 Javascript
jquery实现类似淘宝星星评分功能有截图
2014/09/15 Javascript
jQuery中addClass()方法用法实例
2015/01/05 Javascript
JavaScript自定义数组排序方法
2015/02/12 Javascript
javascript 数组的正态分布排序的问题
2016/07/31 Javascript
文件上传,iframe跨域数据提交的实现
2016/11/18 Javascript
Vue-Router进阶之滚动行为详解
2017/09/13 Javascript
vue-cli3.0如何使用CDN区分开发、生产、预发布环境
2018/11/22 Javascript
vue 实现 rem 布局或vw 布局的方法
2019/11/13 Javascript
Python greenlet实现原理和使用示例
2014/09/24 Python
浅谈Python的文件类型
2016/05/30 Python
Python中Django发送带图片和附件的邮件
2017/03/31 Python
Python升级导致yum、pip报错的解决方法
2017/09/06 Python
python 输出上个月的月末日期实例
2018/04/11 Python
Python使用Phantomjs截屏网页的方法
2018/05/17 Python
Pycharm更换python解释器的方法
2018/10/29 Python
Python爬虫动态ip代理防止被封的方法
2019/07/07 Python
Python partial函数原理及用法解析
2019/12/11 Python
Django异步任务线程池实现原理
2019/12/17 Python
django-orm F对象的使用 按照两个字段的和,乘积排序实例
2020/05/18 Python
使用keras根据层名称来初始化网络
2020/05/21 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
2021/01/18 Python
利用CSS3伪元素实现逐渐发光的方格边框
2017/05/07 HTML / CSS
京东全球售:直邮香港,澳门,台湾,美国,澳大利亚等地区
2017/09/24 全球购物
《飞向蓝天的恐龙》教学反思
2014/04/09 职场文书
教师个人师德总结
2015/02/06 职场文书
房地产销售主管岗位职责
2015/02/13 职场文书
2019通用版劳动合同范本!
2019/07/11 职场文书
雄兵连:第三季先行图公开,天使恶魔联合,银河之力的新力量
2021/06/11 国漫
总结Pyinstaller打包的高级用法
2021/06/28 Python
Python中的socket网络模块介绍
2022/07/23 Python