扩展PHP类并忽略某些方法

扩展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

//我想要在contact_form classis中使用注册类中的两个方法来验证contact form。但是,我想排除最后一个方法(validate_username),并显示不同的错误消息,例如,在validate_message中,而不是显示“invalid message”。我想显示“请确保您的邮件长度至少为50个字符”。基本上,我不想专门创建一个验证contact_表单的不同类,因为我将使用注册表单中使用的相同方法

谢谢

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()。除此之外,继承的目的就是让您重写方法,所以请这样做!