Edit report at http://bugs.php.net/bug.php?id=51781&edit=1
ID: 51781 Comment by: feng_evan at yahoo dot com Reported by: feng_evan at yahoo dot com Summary: array index 0 problem Status: Bogus Type: Bug Package: Arrays related Operating System: windows xp PHP Version: 5.2.13 New Comment: yes,i can see. "If you compare an integer with a string, the string is converted to a number. If you compare two numerical strings, they are compared as integers. These rules also apply to the switch statement. " but,unacceptable intuitively Previous Comments: ------------------------------------------------------------------------ [2010-05-10 10:57:52] [email protected] 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 numeric indexes are stored as integers, comparing integer 0 with a string not starting with a digit gives true as the string is casted to an integer. Expected, documented, behavior. Won't change. ------------------------------------------------------------------------ [2010-05-10 09:35:52] feng_evan at yahoo dot com Description: ------------ Array index value judgments must use absolute equal? Test script: --------------- $arr = array(); $arr['0'] = 'zero'; $arr['keyword'] = 'keyword'; foreach($arr as $key => $val) { if ($key == 'keyword') { //if ($key === 'keyword') { //ok echo $val."\n"; } } //output:zero keyword ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=51781&edit=1
