Re: Re: SHOULD I NOT USE "ELSE" IN IF STATEMENTS....?
| From: | Clancy | 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;
}