volviendo al tema, hay una persona que se esta tragando discusiones innecesarias y sigue buscando una solucion, simplemente trate de dar mi punto de vista, de ahorrar esfuerzos, aqui propongo mi solucion:
 
podrias declarar unas reglas, de esta forma: 
 Código PHP:
    $reglas = array(
   'nombre_campo' => 'tipo_campo',
   'correo' => 'email',
   'contrasena' => 'password'
); 
    
   Código PHP:
    class Form {
protected $data;
protected $rules;
public function __construct(array $rules, array $data = array()) {
   $this->rules = $rules;
   if(empty($data)) {
      $data = $_POST;
   $this->data = $data;
}
public function validate() {
   foreach($this->data as $field => $value) {
      foreach($this->rules as $name => $type) {
         if($field == $name) {
            switch($type) {
               case 'email':
                  if(!$this->validateEmail($value))
                     return false;
               case 'password':
                  if(!$this->validatePassword($value))
                     return false;
            }
         }
      }
   }
   return true;
}
public function validateEmail($value) {
   return true;
}
public function validatePassword($value) {
   return true;
}
} 
    
  esta cascado aqui en un momento, habria que pulirlo supongo:  
 Código PHP:
    //luego cuando recibes el formulario en este script podrias hacer algo asi:
if(isset($_POST['submit'])) {
   $reglas = array(
      'nombre_campo' => 'tipo_campo',
      'correo' => 'email',
      'contrasena' => 'password'
   );
   $form = new Form($reglas, $_POST);
   
   if($form->validate() == true) {
      echo 'formulario valido';
   }
   else
      echo 'errores en el formulario';
} 
    
  ese es mi aporte, saludos.