#34976 [Opn->Bgs]: Strange return values from strpos when inside foreach

From: Date: Tue, 25 Oct 2005 09:00:29 +0000
Subject: #34976 [Opn->Bgs]: Strange return values from strpos when inside foreach
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-87016@lists.php.net to get a copy of this message
ID: 34976 Updated by: tony2001@php.net Reported By: mikael at chl dot chalmers dot se -Status: Open +Status: Bogus Bug Type: Strings related Operating System: Linux PHP Version: 4.4.0 New Comment: "If needle is not a string, it is converted to an integer and applied as the ordinal value of a character." In your case needle is int(919400). chr(919400) returns "h", so you got what you was looking for: "h" is 65-th symbol in your string. Previous Comments: ------------------------------------------------------------------------ [2005-10-25 10:40:01] mikael at chl dot chalmers dot se Description: ------------ When using strpos inside a foreach and the needle is the key of the array being looped over one get strange return values. Not all key and not all length of the haystack produces this result, and not all needle/haystacks produce the same faulty return value Reproduce code: --------------- $maps = array('919400' => 'foo'); foreach ($maps as $orgnr => $foo) var_dump(strpos('ou=000000,ou=000000,ou=000000,ou=0000000000,ou=organization,dc=chalmers,dc=se', $orgnr)); Expected result: ---------------- bool(false) Actual result: -------------- int(64) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=34976&edit=1

« previous php.bugs (#87016) next »