ID:               30036
 User updated by:  marek at lewczuk dot com
 Reported By:      marek at lewczuk dot com
 Status:           Bogus
 Bug Type:         Arrays related
 Operating System: Windows
 PHP Version:      4.3.8
 New Comment:

Right, it works with 3rd parameter, but it is not the point - is string
"test" equal to boolean "true" ? Even if we are not comparing variable
types, then "test" is not equal to "1". For example, I have an array
with strings, integers, boolean - I'm looking for any "123" value - I
don't care if this is an integer or string - the value is important. In
this case, I can't use in_array with 3rd parameter, because it will not
find all all correct values. 

examples:

in_array('232', array(232, '232', true))
this will return true - correct

in_array('232', array(232, true), true)
this will return false - correct

in_array('232', array(233, '233', true))
this will return true - wrong

In my opinion this is not correct behavior...


Previous Comments:
------------------------------------------------------------------------

[2004-09-15 10:56:57] [EMAIL PROTECTED]

Use the 3rd optional parameter (for strict search) which makes  
in_array() to check the type too. NOT a bug.


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

[2004-09-09 10:04:27] marek at lewczuk dot com

Description:
------------
When you have an array with boolean values, then in_array will always
return true.

Reproduce code:
---------------
print in_array("test it", array(true, true, "sdsd" => true))

Expected result:
----------------
should return false

Actual result:
--------------
true


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


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

Reply via email to