扩展PHP类并忽略某些方法

时间:2015-01-06 13:18:23

标签: php class inheritance extend

//我想在contact_form类中使用注册类中的几个方法来验证联系表单。但是,我想排除最后一个方法(validate_username),并显示不同的错误消息,例如,在validate_message中,而不是显示"无效消息"。我想要显示"请确保您的消息至少50个字符"。基本上我不想创建另一个专门验证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{

}

3 个答案:

答案 0 :(得分:0)

您只需重新定义validate_username()类中的contact_form方法:

    class contact_form extends registration{
        function validate_username(){
            //Add the new error message here to override the older one
        }
    }

答案 1 :(得分:0)

validate_username()设置为private以停止访问子类。

覆盖您要显示不同消息的功能。

答案 2 :(得分:0)

会这样吗?

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

}