Bug #17655 Updated: key and intval on associative array are equal

From: Date: Sat, 08 Jun 2002 14:25:46 +0000
Subject: Bug #17655 Updated: key and intval on associative array are equal
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-9851@lists.php.net to get a copy of this message
ID: 17655 Updated by: mfischer@php.net Reported By: msopacua@idg.nl -Status: Open +Status: Bogus Bug Type: Arrays related Operating System: Any PHP Version: 4.2.1 New Comment: Sorry, but the bug system is not the appropriate forum for asking support questions. Your problem does not imply a bug in PHP itself. For a list of more appropriate places to ask for help using PHP, please visit http://www.php.net/support.php Thank you for your interest in PHP. Makes perfectly sense to me. key($arr) returns a "string". intval() returns an int. The first if() tests string == int. PHP automatically converts the string to an integer (which is 0 because there's no valid number in key($arr) ). The second if() compares also the "types" of the variables which do not match of course. Previous Comments: ------------------------------------------------------------------------ [2002-06-08 09:04:03] msopacua@idg.nl Sample: <?php $arr = array( 'string' => 'a string', 'anotherstring' => 'b string' ); print(key($arr)."\t"); print(intval(key($arr))."\n"); if(key($arr) == intval(key($arr))) { print("Equal!\n"); } else { print("Not equal\n"); } if(key($arr) === intval(key($arr))) { print("Equal!\n"); } else { print("Not equal\n"); } ?> Output: string 0 Equal! Not equal That really defeats the use of intval(). Confirmed on BSD/OS and Native windows/isapi. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=17655&edit=1

« previous php.bugs (#9851) next »