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