#26232 [Bgs->Opn]: in_array produces true when bool true is in haystack

From: Date: Fri, 14 Nov 2003 07:42:55 +0000
Subject: #26232 [Bgs->Opn]: in_array produces true when bool true is in haystack
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-50369@lists.php.net to get a copy of this message
ID: 26232 Updated by: helly@php.net Reported By: me at my dot house -Status: Bogus +Status: Open -Bug Type: Arrays related +Bug Type: Feature/Change Request Operating System: * PHP Version: 4.3.2, 5b2 New Comment: Yes it is correct BUT in this case i suggest we add an option to the function to switch to === checks. Previous Comments: ------------------------------------------------------------------------ [2003-11-13 19:34:21] iliaa@php.net Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.php.net/manual/ and the instructions on how to report a bug at http://bugs.php.net/how-to-report.php This is to be expected. Jay's explanation clearly identifies the fault in the PHP script. In this situation you should specify the 3rd parameter to in_array(), which would make comparison strict. ------------------------------------------------------------------------ [2003-11-13 10:55:42] jay@php.net Isn't this sort of expected? "x" should be converted to a boolean and compared to true, and obviously true == true. J ------------------------------------------------------------------------ [2003-11-13 03:27:55] helly@php.net marcus@zaphod /usr/src/php5 $ php -r 'var_dump(in_array("x",array(1,2,3,false)));' bool(false) marcus@zaphod /usr/src/php5 $ php -r 'var_dump(in_array("x",array(1,2,3,true)));' bool(true) ------------------------------------------------------------------------ [2003-11-12 22:11:00] me at my dot house Description: ------------ If the haystack contains the boolean true, in_array returns true!! Check this (PHP 4.2.3-8 debian package) : Reproduce code: --------------- <?php $r=array("fzsgsdgsd","reazrazr","rezarzearzae",true); $ret=in_array("tsuser_id",$r); print $ret; } ?> Expected result: ---------------- false Actual result: -------------- true ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=26232&edit=1

« previous php.bugs (#50369) next »