ID: 48364
User updated by: clement dot hallet at af83 dot com
Reported By: clement dot hallet at af83 dot com
Status: Bogus
Bug Type: Variables related
Operating System: Mac OS X 10.5.6
PHP Version: 5.2.9
New Comment:
unfortunately no, because is_null on an unsetted variable returns
TRUE.
What I try to say is that's impossible to test if a variable has been
set AND it has been set to NULL.
For instance :
if($whatever) {
//case 1
$a = NULL;
} elseif($whateverelse) {
// case 2
$a = new SomeThing();
} else {
// case 3
// do things but no set the $a variable;
}
it's impossible after that to make a difference between cases 1 and 3,
because (excepting for case 2):
isset($a) will return FALSE in both cases
is_null($a) will return TRUE in both cases
Sorry to insist, that way may have been declared as expected. But, I
would like to make it understood before to consider it has a part of
php.
Previous Comments:
------------------------------------------------------------------------
[2009-05-22 19:19:14] [email protected]
is_null
------------------------------------------------------------------------
[2009-05-22 18:38:30] clement dot hallet at af83 dot com
Sorry for the bad status :)
Please note that because of :
$a = NULL;
isset($a) -> FALSE
is_null($b) -> TRUE (a notice happend)
It's impossible to test if a variable is _set_ to NULL :/
------------------------------------------------------------------------
[2009-05-22 18:26:18] [email protected]
no bug > bogus :)
------------------------------------------------------------------------
[2009-05-22 18:23:11] clement dot hallet at af83 dot com
That bug report is void. Have seen
http://fr3.php.net/manual/en/function.isset.php
Maybe a change betweens versions ?
------------------------------------------------------------------------
[2009-05-22 18:14:32] clement dot hallet at af83 dot com
Description:
------------
Hi,
A call to the 'isset' function with a variable set to NULL returns
FALSE.
As seen on a previous report bug (http://bugs.php.net/bug.php?id=6076),
the return value should be TRUE.
Reproduce code:
---------------
$a = NULL;
var_dump(isset($a));
Expected result:
----------------
the return of isset($a) should be TRUE.
Actual result:
--------------
isset($a) returns FALSE
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=48364&edit=1