扩展 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');
}
}
//我在 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');
}
}