On Wed, 2007-06-13 at 15:19 +0100, Richard Davey wrote:
> Hi Robert,
>
> Wednesday, June 13, 2007, 3:15:39 PM, you wrote:
>
> > It's terribly verbose and inefficient...
>
> > <?php
>
> > $filter['flags'] = 0;
>
> > if( $allow_fraction )
> > {
> > $filter['flags'] |= FILTER_FLAG_ALLOW_FRACTION;
> > }
>
> > if( $allow_thousand )
> > {
> > $filter['flags'] |= FILTER_FLAG_ALLOW_THOUSAND;
> > }
>
> > if( $allow_scientific )
> > {
> > $filter['flags'] |= FILTER_FLAG_ALLOW_SCIENTIFIC;
> > }
>
> ?>
>
> I don't think it's *terribly* verbose, as it has good sentence structure
> to it, but your version is certainly more efficient, hence I've
> swapped to that. Any other takers? ;)
Personally I hate constants (can't use non-scalar values so why get used
ot them... also they're just another point for name collision) so if it
were my own code I'd do something more like the following:
<?php
$GLOBALS['filterFlags'] = array
(
'allowFraction' => 1 << 0,
'allowThousand' => 1 << 1,
'allowScientific' => 1 << 2,
);
// then your above code would become:
$filter['flags'] = 0;
foreach( $filterFlags as $name => $bits )
{
if( isset( $$name ) && $$name )
{
$filter['flags'] |= $bits;
}
}
?>
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