Robert Cummings wrote: > steve_r wrote: >> I'm new to programming, drive a truck in the day, now taking night >> courses >> to get a better job for my family. Please bear with me if this is a dumb >> question, I don't have much experience. >> >> I'm taking a night class in HTML and PHP and can't figure out a >> problem and >> can't find the answer in the book for the course ("Beginning PHP5" by >> Wrox >> Press), on the switch manual page on php.net, or in any postings to this >> mailing list. >> >> I'm trying to pass a value to a simple integer to a function, and then >> use >> that value in a switch statement. The problem I'm having is that >> regardless >> of the value of 'val', the first case statement always executes. Even >> if I >> put '$val = 0' right before the case statement, the first case statement >> executes. The syntax looks correct based on the php.net man page for >> switch >> and from the user examples. It also matches the example in the book. >> >> function check_it2($val) { >> echo gettype($val); >> switch($val) { >> case($val > 0 ): >> echo "Switch greater than 0"; >> $diff_obj = 1; >> break; >> case($val < 0 ): >> echo "Less than 0"; >> $diff_obj = -1; >> break; >> default: >> echo "Equal to 0"; >> $diff_obj = 0; >> } >> print("Here's \$diff_obj2 in the function: " . $diff_obj); >> return $diff_obj; >> } > > You're a tad confused :) > > Q: What is the result of $val > 0? > A: false. > > Q: What is the value of $val? > A: 0 > > Q: Is 0 equivalent to false? > A: Yes! > > Use an if statement for this kind of logic. This is a fantastic example of false logic and an easy pitfall. in fact this would make a great interview question! to expand a little on the various scenarios (just for clarity, Rob is right) $val = 1; 1 > 0 equates to TRUE is 1 equivalent to TRUE : YES $val = 0; 0 > 0 equates to FALSE is 0 equivalent to FALSE : YES $val = -1; -1 > 0 equates to FALSE is -1 equivalent to FALSE: YES so no matter what value you set $val to; it's always true. lovely Regards! -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php