Bug #13874 Updated: isset on a associative array does not distinct if key exist

From: Date: Tue, 30 Oct 2001 16:42:42 +0000
Subject: Bug #13874 Updated: isset on a associative array does not distinct if key exist
References: 1  Groups: php.dev 
Request: Send a blank email to php-dev+get-69340@lists.php.net to get a copy of this message
ID: 13874 Updated by: sander Reported By: raymond@bokenkamp.com Old Status: Open Status: Bogus Bug Type: Unknown/Other Function Operating System: ALL PHP Version: 4.0.6 New Comment: Not a bug. Intended behaviour. isset() returns false on variables with a NULL value. Documentation is being worked on. Previous Comments: ------------------------------------------------------------------------ [2001-10-30 11:23:43] raymond@bokenkamp.com There's no good way to check weather a key exists in an associative array. The problem is that if the key exists, but the value is null, is treated the same as if the key doesn't exist. The only way I figure is to check: in_array("key", array_keys($array)) but this seams rather expensive. (Compare: perl has an "exists" function ...) Sample: $sample = array("a" => "a", "b" => NULL); print ":".isset($sample['a'])."<br>\n"; print ":".isset($sample['b'])."<br>\n"; print ":".isset($sample['c'])."<br>\n"; print ":".in_array("a", array_keys($sample))."<br>\n"; print ":".in_array("b", array_keys($sample))."<br>\n"; print ":".in_array("c", array_keys($sample))."<br>\n"; ------------------------------------------------------------------------ Edit this bug report at http://bugs.php.net/?id=13874&edit=1

« previous php.dev (#69340) next »