On 3/11/13 6:25 PM, Angela Barone wrote:
On Mar 11, 2013, at 4:10 PM, Jonathan Sundquist wrote:
the variable $current_page does not exist.


        That was my problem. :(  I've been staring at this for too long.  Too 
bad there's not a 'use strict' pragma.

There is. Always set your development environment to E_ALL | E_STRICT, and it will yell at you about every little thing, including undefined variables.

http://php.net/manual/en/function.error-reporting.php

I would also suggest keeping with your original statement to return early and 
return often. Its best to exit out of your functions sooner than later.  
Specially if its a large function.

        O.K.  I just thought there might be a more elegant way of doing it.  I 
at least got rid of the else statement like you mentioned.

Thanks for your help,
Angela

If you find yourself with a function that's too long and complex from the if-statements, your first step is to break it up into utility functions.

if (...) {
  // Something Long
}
else {
  // Something Else Long
}

Becomes:

if (...) {
  something_long();
}
else {
  something_else_long();
}

function something_long() {

}

function something_else_long() {

}

That helps both readability and testability.

Also, on your original boolean question, note that negation is distributive. That is:

!($a && $b && $c)

is the same as:

!$a || !$b || $!c

Which means that if your checks are all equality checks, as in your case, you can simply do:

if ($a != 'a' || $b != 'b' || $c >= 'c') {

}

Which may be easier to read. If those checks are not trivial then there's also a micro-performance benefit there, as the first statement that evaluates to true will cause the whole thing to return true, so the second and third options don't need to be evaluated.

--Larry Garfield

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to