Re: professional code quick tip

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.          |
`------------------------------------------------------------'

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux