zf框架的校验器使用使用示例(自定义校验器和校验器链)
程序员文章站
2024-02-09 12:38:22
复制代码 代码如下:
<?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()
{
复制代码 代码如下:
<?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);
?>