объединить несколько функций в одну функцию

#php #function

#php #функция

Вопрос:

Я пытаюсь объединить 3-4 функции внутри одной функции и вызвать это внутри другой функции. например

 public function user($user) 
{ if($user==''){ $this->logerror('not valid'); //this stores error in the db
 return false; } 
} 
  

У меня есть еще одна для электронной почты, подобной этой

 public function email($email) 
    { if($email==''){ $this->logerror('not valid'); //this stores error in the db
     return false; } 
    } 
  

Итак, теперь я хочу написать функцию под названием «validate», а затем поместить две вышеуказанные функции. затем я буду называть это «validate» в других местах, когда я захочу подтвердить пользователя и электронную почту. Я не понимаю, какими будут аргументы для функции «validate», когда я захочу ее использовать. Пожалуйста, дайте мне знать, если я чего-то не понимаю.

Комментарии:

1. Не уверен, чего вы хотите, но если вы хотите иметь функцию, которая хочет проверять оба этих параметра, два вызова должны сделать свое дело.

2. да, непонятно, вы имеете в виду a: function one4all($what, $toDo){...} если это так, просто используйте switch($toDo)

3. Возможно, вы захотите переименовать свои функции и изменить то, что вы возвращаете в них. Я не думаю, что большинство людей ожидали бы, что функция с именем user вернет false или null .

Ответ №1:

Это то, чего вы хотите?

 public function validate($user, $email) 
{ if($user=='' and $email != ''){ $this->logerror('not valid'); //this stores error in the db
 return false; } 
}
  

Комментарии:

1. Я думаю, что что-то вроде этого будет полезно. будем работать в этом направлении. спасибо всем.

Ответ №2:

Это то, что вы пытаетесь сделать?

 <?php
public function checkData($data) 
{
  if($data == '') {
    $this->logerror('not valid'); //this stores error in the db
    return false; 
  } 
}

checkData($email);
checkData($user);
?>
  

Ответ №3:

 public function user($user){
    if($user==''){ 
        $this->logerror('name not valid'); //this stores error in the db
        return false; 
    }else{
        return true;
}

public function email($email){ 
    if($email==''){ 
        $this->logerror('email not valid'); //this stores error in the db
        return false; 
    }else{
        return true;
    } 
}

public function validate($name, $email){
    if(name($name) amp;amp; email($email){
        // Then the form is valid
    }else{
        // the form  is not valid
    }
}
  

Функция validate проверит как имя, так и переданный параметр email