Re: Looking for caveats to the following code

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

 



Chris W. Parker wrote:
> Hello,

....

> 
> <?php
> 
> if($result = do_something('hello'))
> {
>   // do something with $result
> }
> else
> {
>   // do some other stuff
> }
> 
> ?>
> 

nothing wrong with this. like Adam mentioned you can check the expression to see
if it is exactly false - and if you don't need $result you can also do it like so:

if (do_something('hello') !== false) {

}

or

// some consider this safer because accidentally assigning
// to a literal will cause an error - so you know right away when you made a type
if (false !== do_something('hello')) {

}

to make the 'safety' issue clearer consider these snippets:

if (false == $res) echo "boo!";
if (false = $res) echo "boo!";		// typo with fatal!

if ($res == false) echo "boo!";
if ($res = false) echo "boo!";		// typo with no error but your logic is silently borked!


> The issue is whether or not this is a safe test. My initial thought is
> that it is safe since I'm simply checking for true/false-ness. I either
> check for '!== false' explicitly or (in the case of the latter example)
> check that something other than 'false' is returned.
> 
> It's slightly less readable but it seems more efficient (if nothing more
> than to save on the number of lines typed).

readable is probably a question of preference and what your acustomed to; in
situations where you don't need $result you can save on creating a variable by testing
directly on the return result of the given function.

> 
> Thoughts?
> 
> 
> Chris.
> 

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