扩展PHP类并忽略某些方法
//我想要在contact_form classis中使用注册类中的两个方法来验证contact form。但是,我想排除最后一个方法(validate_username),并显示不同的错误消息,例如,在validate_message中,而不是显示“invalid message”。我想显示“请确保您的邮件长度至少为50个字符”。基本上,我不想专门创建一个验证contact_表单的不同类,因为我将使用注册表单中使用的相同方法 谢谢扩展PHP类并忽略某些方法,php,class,inheritance,extend,Php,Class,Inheritance,Extend,//我想要在contact_form classis中使用注册类中的两个方法来验证contact form。但是,我想排除最后一个方法(validate_username),并显示不同的错误消息,例如,在validate_message中,而不是显示“invalid message”。我想显示“请确保您的邮件长度至少为50个字符”。基本上,我不想专门创建一个验证contact_表单的不同类,因为我将使用注册表单中使用的相同方法 谢谢 class registration{ functio
class registration{
function __construct($data){
//sanitize data
}
function validate_empty(){
//validate empty fields
//error: do not leave anything empty
}
function validate_email(){
//validate email
//error: invalid email
}
function validate_name(){
//validate name
//error: invalid name
}
function validate_message(){
//validate message
//error: invalid message
}
function validate_username(){
//validate username
//error: invalid username
}
}
class contact_form extends registration{
}
您只需在
contact\u表单
类中重新定义validate\u username()
方法即可:
class contact_form extends registration{
function validate_username(){
//Add the new error message here to override the older one
}
}
将
validate_username()
设置为private
以停止子类的访问
覆盖要显示不同消息的函数。这样做可以吗
class registration{
...
function validate_message($errormsg = 'invalid message'){
//validate username
//error: invalid username
}
private function validate_user() {}
}
class contact_form extends registration{
function validate_message(){
parent::validate_username('Please make sure your message is atleast 50 characters long');
}
}
因此,在
contact\u表单中定义validate\u username()。除此之外,继承的目的就是让您重写方法,所以请这样做!