Автор Тема: Класс для проверки данных  (Прочитано 3675 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Slastik

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 101
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.sproekt.kiev.ua
Класс для проверки данных
« : 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;

	
}



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

}
FAQ OFF =)

Оффлайн unclebob

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 96
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Класс для проверки данных
« Ответ #1 : 06 Июля 2006, 10:35:11 »
В приведенных примерах честно говоря смысла не вижу.
В общем случае, если в коде приходится часто использовать некие однотипные конструкции, которые можно успростить/обобщить, то никто не мешает этим воспользоваться. Главное не слишком заморачиваться дабы не навредить производительности.
запивайте пиво водкой, чтобы жизнь была короткой
запивайте водку пивом, чтобы стать большим красивым

Оффлайн AlieN

  • Абыр!=)
  • Ветеран
  • *****
  • Сообщений: 1315
  • +0/-1
  • 2
    • Просмотр профиля
Класс для проверки данных
« Ответ #2 : 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;
The Chemical Brothers - Hey Boy Hey Girl (User Friendly Mix)
Peter Presta pres - Set Sail(Peter Presta Apple Jaxx Dub) She S.Sunshine Feat Mila - Bring The Beat Back (Club Mix) Jerry Ropero - Home Alone (Dub Mix)

Оффлайн Slastik

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 101
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.sproekt.kiev.ua
Класс для проверки данных
« Ответ #3 : 07 Июля 2006, 15:07:56 »
AlieN
Дело вкуса, плюс реги работают немножко дольше.
вопрос то был совсем не в этом.
FAQ OFF =)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28