php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #34419 array_key_exists warns for large numeric keys
Submitted: 2005-09-08 06:05 UTC Modified: 2005-09-08 07:32 UTC
From: bsdson dot tw at yahoo dot com dot tw Assigned:
Status: Not a bug Package: Arrays related
PHP Version: 5.0.5 OS: Linux
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: bsdson dot tw at yahoo dot com dot tw
New email:
PHP Version: OS:

 

 [2005-09-08 06:05 UTC] bsdson dot tw at yahoo dot com dot tw
Description:
------------
The same issue as Bug#21954,
that 'array_key_exists' warns for large numeric keys!

Bug#21954 is believed to be bogus,
but I don't think so!

From the manual of this function, it says that 
"key can be any value possible for an array index".

Since the statement '$a[2163195907] = "hi";' is acceptable for PHP, the function should accept 2163195907 as the argument 'key', too.

More, PHP is used as a type-less language, why should I bother from that?!

Reproduce code:
---------------
<?php
	$a = array();
	$a[2163195907] = "hi";
	echo array_key_exists(2163195907,$a);
?>

Expected result:
----------------
true

Actual result:
--------------
Warning: array_key_exists(): The first argument should be either a string or an integer in bug.php on line 4

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2005-09-08 07:32 UTC] sniper@php.net
"This is not a bug, the number you are using is NOT an integer because it's larger then 2^31-1 (the maximum integer value in PHP) and thus it will be converted to a float."

This hasn't changed, will not change, and is not a bug.
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Mon May 12 08:01:27 2025 UTC