zf框架的校验器使用使用示例(自定义校验器和校验器链)_php实例
程序员文章站
2024-02-20 11:29:52
...
复制代码 代码如下:
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 . "
";
return false;
}
}
}
//指定判断的值
$num1 = '15';
//运行校验方法
check_num($num1);
?>