Re: Re: SHOULD I NOT USE "ELSE" IN IF STATEMENTS....?

From: Date: Wed, 10 Jun 2009 00:45:43 +0000
Subject: Re: Re: SHOULD I NOT USE "ELSE" IN IF STATEMENTS....?
References: 1 2 3 4  Groups: php.general 
Request: Send a blank email to php-general+get-293833@lists.php.net to get a copy of this message
On Tue, 09 Jun 2009 12:22:22 -0400, robert@interjinn.com (Robert Cummings) wrote: >Craige Leeder wrote: >> I'm not sure I agree with NEVER using else. Sometimes else is a very >> logical way to organize code. However, it should not be used for data >> validation IE: >> >> >> function myValidatorFunc($data) { >> if (empty(data)) { >> return false; >> } else { >> if (!is_numeric($data)) { >> return false; >> } else { >> >> } >> } >> } >> >> >> It's all about how deep you nest your code, and keeping the flow clean. >> That code would be much more readable as such: >> >> function myValidatorFunc($data) { >> if (empty(data)) { >> throw new BadMethodCallException("Paramater data missing"); >> } >> if (!is_numeric($data)) { >> throw new InvalidArgumentException("Paramater data should be an >> integer."); >> } >> } >> >> See the difference? > >I believe the article was suggesting not ending a function that returns >a value with no return. So rather than return in the else, return >outside the else as the last expression of the function. This way it is >clear that the function returns a value. > >Contrast: > ><?php > >function foo( $foo ) >{ > if( $foo ) > { > return true; > } > else > { > return false; > } >} > >?> > >Versus: > ><?php > >function foo( $foo ) >{ > if( $foo ) > { > return true; > } > > return false; >} > >?> > >Personally, I also prefer the latter style. I don't particularly like scattered returns, and prefer Function foo; { result = false; if ( ) { $result = 'yellow'; } elseif ( ) { $result = 'blue'; } return $result; }

« previous php.general (#293833) next »