龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

ZF框架校验器的使用[自定义校验器与校验器链]

时间:2014-07-22 14:48来源: 作者: 点击:
分享到:
作业练习
作业练习
<?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);
?>
精彩图集

赞助商链接