You are here: Re: two-dimensional switch statement? « PHP Programming Language « IT news, forums, messages
Re: two-dimensional switch statement?

Posted by gosha bine on 08/22/07 19:35

Miyagi wrote:
> I have a bunch of conditions in which to determine different types of
> questions to ask in a survey I am constructing.
> Just was wondering if anybody has used a two-dimensional switch
> statement. If this works, is this an efficient coding method or would
> anybody else have another way around this?
>
> $type = enters _POST as (employee, client, or peer)
> $visit = enters _POST as ( 0 or 1 )
> $userage = enters _POST as ( 1, 2, 3, or 4)
> $ip is the IP address of the user
>
> function determineUser($type, $userage, $ip, $visit)
> {
>
> switch ($type){
> case 'employee':
> switch ($userage){
> case '1':
> case '2': if($visit){$surveyType=1;}else{$surveyType=2;} break;
> case '3':
> case '4': $surveyType=3; break;
> case 'client': if($visit){$surveyType=4;}else{$surveyType=5;}
> break;
> case 'peer': if($visit){$surveyType=6;}else{$surveyType=7;} break;
> }
>
> $query = "INSERT INTO user(userip, userage, idsurvey)
> VALUES('$ip','$userage','$surveyType')";
> mysql_query($query);
>
> return (getUserId($ip));
> }
>
> Thanks.
>

I think using an explicit configuration / lookup table would make the
code far more maintainable. Something along the lines of


function get_survey_type($type, $age, $visit)
{
// lookup key is either 'type-age-visit'
// or 'type-visit' (assumes any age)

static $map = array(
'employee-1-1' => 1,
'employee-2-1' => 1,
//
'client-1' => 4,
'client-0' => 5,
);

$key = "$type-$age-$visit";
if(isset($map[$key]))
return $map[$key];

$key = "$type-$visit";
if(isset($map[$key]))
return $map[$key];

return default or error;

}



--
gosha bine

extended php parser ~ http://code.google.com/p/pihipi
blok ~ http://www.tagarga.com/blok

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация