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.


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,

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


if (...) {
else {

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