扩展 PHP class 并忽略某些方法

Extending PHP class and ignoring certain methods

//我在 contact_form class 中想要的是使用注册 class 中的几种方法来验证联系表。但是我想排除最后一个方法(validate_username),并显示不同的错误消息,例如,在 validate_message 中,而不是显示 "invalid message"。我想显示 "Please make sure your message is atleast 50 characters long"。基本上我不想做一个不同的 class 来专门验证 contact_form 因为我将使用我在注册表中使用的相同方法。

谢谢。

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_form class:

中重新定义validate_username()方法
    class contact_form extends registration{
        function validate_username(){
            //Add the new error message here to override the older one
        }
    }

validate_username() 设置为 private 以阻止 child class 访问。

覆盖您想要显示不同消息的函数。

这样的事情行吗?

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');
    }

}