Edit report at http://bugs.php.net/bug.php?id=54592&edit=1

 ID:                 54592
 Updated by:         dtajchre...@php.net
 Reported by:        kadmio007 at hotmail dot com
 Summary:            is_bool provides wrong result when running inside a
                     switch
-Status:             Open
+Status:             Bogus
 Type:               Bug
 Package:            Variables related
 Operating System:   Ubuntu Linux 10.10
 PHP Version:        Irrelevant
 Block user comment: N
 Private report:     N

 New Comment:

Not quite... is_bool($var) evaluates to true; $var is false... false
doesn't match 

that case. is_numeric($var) evaluates to false. $var == is_numeric($var)
hence 

'number' is printed.



Another view:



var_dump($var != is_bool($var));

var_dump($var == is_numeric($var));


Previous Comments:
------------------------------------------------------------------------
[2011-04-22 16:39:36] kadmio007 at hotmail dot com

Description:
------------
Whenever testing for a variable with the value false using is_bool
inside a switch statement will return false instead of true.



I have tested it with different php versions, it happened on all of
them.



Test script:
---------------
echo phpversion();

$var = false;

switch ($var) {

    case is_bool($var):

        echo "boolean";

        break;

    case is_numeric($var):

        echo "number";

        break;

}

if (is_bool($var))

    echo "boolean";

elseif (is_numeric($var))

    echo "number";

Expected result:
----------------
5.3.4booleanboolean

Actual result:
--------------
5.3.4numberboolean


------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=54592&edit=1

Reply via email to