php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Doc Bug #19080 Docs not clear on the diff between isset() and array_key_exists()
Submitted: 2002-08-23 19:20 UTC Modified: 2002-08-28 12:25 UTC
From: andrey at webgate dot bg Assigned:
Status: Closed Package: Documentation problem
PHP Version: 4.2.2 OS: All
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: andrey at webgate dot bg
New email:
PHP Version: OS:

 

 [2002-08-23 19:20 UTC] andrey at webgate dot bg
 Hello,
this code :
<?php 
$a = array(1=>NULL);
var_dump($a);
var_dump(isset($a[1]));
var_dump(array_key_exists(1,$a));
?>
Produces this :
array(1) {
  [1]=>
  NULL
}
bool(false)
bool(true)

So for first time I see difference in the use of isset() and array_key_exists(). Many users (including me till 1 one ago) believe that they are equivalent and because isset() is shorter it is mostly used.
Should be there any notice in the docs about this issue?
This code is correct and the bug report was inspired by note to do this by jmcastagnetto.

Regards,
Andrey

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2002-08-28 12:25 UTC] kalowsky@php.net
There is an example in the docs explaining the difference between this on the isset() page.  
 [2003-10-03 08:35 UTC] mvivino at avaya dot com
After being "bitten" by this one myself, I looked back at the documentation more carefully, and of course this is correct behavior, as noted in the thread above.

The one-line summary of the function's behavior is still (IMHO) wrong:  

>> Returns TRUE if var exists; FALSE otherwise.

Simply rewriting this as:

>> Returns TRUE if var exists and is not set to NULL; FALSE otherwise.

would make the behavior crystal clear, and might save a few other folks trouble in the future.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Apr 25 19:01:33 2024 UTC