Forum Webscript.Ru

Программирование => PHP => Тема начата: Slastik от 04 Июля 2006, 23:10:08

Название: Класс для проверки данных
Отправлено: Slastik от 04 Июля 2006, 23:10:08
решил написать клас для проверки данных.
думаю есть ли смысл в таком, то есть не тупо ли это переписывать по два раза готовые функции.
Интересует мнение общественности. :)

я вижу в этом тот плюс, что если я что то захочу изменить в этих проверках, то в классе это будет сделать гораздо проще чем в коде + все проверки обобщаются под одной сущностью, что  делает программу более структурированой.


class DataCheck
{

# проверка на допустимый тип
static public CheckType ($gtype, $gdata)
{
switch ($gtype)
{
  case \'int\':
 if (is_numeric ($gdata) && strpos($gdata,\'.\')===false)
return true;
 else
return false;
 break;

      case \'numeric\':
 if (is_numeric($gdata)) return true;
 else return false;
 break;
}
}

# проверка на допустимую длину
static public CheckLength($glength,$gdata)
{
if (strlen($gdata) > $glength)
return false;
else
return true;

}



.....
//и так далее, с подобными методами )

}
Название: Класс для проверки данных
Отправлено: unclebob от 06 Июля 2006, 10:35:11
В приведенных примерах честно говоря смысла не вижу.
В общем случае, если в коде приходится часто использовать некие однотипные конструкции, которые можно успростить/обобщить, то никто не мешает этим воспользоваться. Главное не слишком заморачиваться дабы не навредить производительности.
Название: Класс для проверки данных
Отправлено: AlieN от 07 Июля 2006, 14:04:49
Цитировать
case \'int\':
              if (is_numeric ($gdata) && strpos($gdata,\'.\')===false)
                 return true;
              else
                 return false;    
              break;

меняем на:
Цитировать
case \'int\':
              if (ereg("^([0-9]+)$",$gdata))
                 return true;
              else
                 return false;    
              break;
Название: Класс для проверки данных
Отправлено: Slastik от 07 Июля 2006, 15:07:56
AlieN
Дело вкуса, плюс реги работают немножко дольше.
вопрос то был совсем не в этом.