Nathan Rixham wrote:
Robert Cummings wrote:
Nathan Rixham wrote:
Robert Cummings wrote:
steve_r wrote:
I'm new to programming, drive a truck in the day, now taking night
to get a better job for my family.  Please bear with me if this is a
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
Press), on the switch manual page on, or in any postings to
mailing list.

I'm trying to pass a value to a simple integer to a function, and then
that value in a switch statement.  The problem I'm having is that
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
executes.  The syntax looks correct based on the man page for
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;
        case($val < 0 ):
            echo "Less than 0";
            $diff_obj = -1;
            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

$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.
Fail on that last one. -1 is not equivalent to FALSE :B

well that's one job I'm not getting :p

Well you DID get 66.7%. I've met "coders" that would stare at the answer and still not understand :D

Application and Templating Framework for PHP

PHP General Mailing List (
To unsubscribe, visit:

Reply via email to