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

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

 



On Tue, 09 Jun 2009 12:22:22 -0400, robert@xxxxxxxxxxxxx (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;
	}


-- 
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