|
Posted by adriano ghezzi on 09/21/05 03:44
thx to all
-- final release & good nigh!
$f=0;
if ( $ar[0]>0 and $ar[0]<=12)
$f=1;
elseif ( $ar[0]>12 and $ar[0]<=14)
$f=2;
elseif ( $ar[0]>14 and $ar[0]<=18)
$f=3;
if ( $ar[0]>18)
$f=4;
2005/9/21, Robert Cummings <robert@interjinn.com>:
> On Tue, 2005-09-20 at 19:20, adriano ghezzi wrote:
> > hy guys this night I'm quite tired
> >
> > I need a little tip
> >
> > ok var n could be from 0 to 12
> >
> > var f must be set
> > f=1 if 0<n<=4
> > f=2 if 5<n<=7
> > f=3 if 8<n<=12
> > f=4 if n>12
> >
> > due to my fatigue I coded four if-if else statement,
> >
> > in other languages it is possible use conditional epression in switch case
> > like
> > switch $n
> >
> > case (0<n<=4):
> > ........
> >
> > but no in php
> >
> > any suggestion for more professional coding then 4 if/else statement
>
> For such a small set I'd say that's as good as it gets. However if there
> were 100 intervals you could try the following:
>
> function f( $n )
> {
> $map = array
> (
> // min, max, f
> array( 0, 4, 1 ),
> array( 5, 7, 2 ),
> array( 8, 12, 3 ),
> array( 17, null, 4 ),
> );
>
> foreach( $map as $criteria )
> {
> if( $criteria[0] === null || $n > $criteria[0]
> &&
> $criteria[1] === null || $n <= $criteria[1] )
> {
> return $criteria[2];
> }
> }
>
> return null;
> }
>
> I think your code is flawed by the way, the lower endpoints are only
> compared for greater than value and not equal to value meaning $n with
> value 4 would not match any f value.
>
> Cheers,
> Rob.
> --
> .------------------------------------------------------------.
> | InterJinn Application Framework - http://www.interjinn.com |
> :------------------------------------------------------------:
> | An application and templating framework for PHP. Boasting |
> | a powerful, scalable system for accessing system services |
> | such as forms, properties, sessions, and caches. InterJinn |
> | also provides an extremely flexible architecture for |
> | creating re-usable components quickly and easily. |
> `------------------------------------------------------------'
>
>
[Back to original message]
|