#31715 [NoF->Fbk]: isset() and empty() return "Trying to get property of non-object"
| From: | aharvey@php.net | Date: | Fri, 08 Jan 2010 11:07:33 +0000 |
| Subject: | #31715 [NoF->Fbk]: isset() and empty() return "Trying to get property of non-object" | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-146432@lists.php.net to get a copy of this message | ||
ID: 31715
Updated by: aharvey@php.net
Reported By: cryptographite at comcast dot net
-Status: No Feedback
+Status: Feedback
Bug Type: Scripting Engine problem
Operating System: FreeBSD
PHP Version: 5.0.3
New Comment:
Please try using this snapshot:
http://snaps.php.net/php5.3-latest.tar.gz
For Windows:
http://windows.php.net/snapshots/
5.1.2 is an extremely old version of PHP. Please try again with a
current version.
FWIW, I can't reproduce this with 5.2.10-whatever-Ubuntu-ship or 5.3.1
-- the only notices are to do with the use of the undefined $key
variable as an array index, which are valid. The expected output is:
$not->set->variable
isset false
empty true
------------------
$not->set[$key]
Notice: Undefined variable: key in /tmp/test.php on line 11
isset false
Notice: Undefined variable: key in /tmp/test.php on line 13
empty true
Previous Comments:
------------------------------------------------------------------------
[2010-01-08 10:12:43] ninuhadida at gmail dot com
I am experiencing the same problem with PHP 5.1.2 on SUSE Linux
------------------------------------------------------------------------
[2005-02-04 01:00:06] php-bugs at lists dot php dot net
No feedback was provided for this bug for over a week, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
------------------------------------------------------------------------
[2005-01-27 08:12:45] derick@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php5-STABLE-latest.tar.gz
For Windows:
http://snaps.php.net/win32/php5.0-win32-latest.zip
------------------------------------------------------------------------
[2005-01-27 05:38:02] cryptographite at comcast dot net
Description:
------------
Using isset() or empty() on an unset child/parent object throws "Trying
to get property of non-object" errors.
This is contrary to the behavior of PHP 4 and makes no sense given the
purpose of the functions and their descriptions.
isset() and empty() should properly handle querying unset objects for
children without returning errors.
Reproduce code:
---------------
<?php
echo '$not->set->variable' . "\n";
echo isset($not->set->variable) ? 'isset true' : 'isset false';
echo "\n";
echo empty($not->set->variable) ? 'empty true' : 'isset false';
echo "\n------------------\n";
echo '$not->set[$key]' . "\n";
echo isset($not->set[$key]) ? 'isset true' : 'isset false';
echo "\n";
echo empty($not->set[$key]) ? 'empty true' : 'empty false';
echo "\n";
?>
Expected result:
----------------
Expected output: (No error messages)
$not->set->variable
isset false
empty true
------------------
$not->set[$key]
isset false
empty true
Actual result:
--------------
$not->set->variable
PHP Notice: Trying to get property of non-object in - on line 3
Notice: Trying to get property of non-object in - on line 3
isset false
PHP Notice: Trying to get property of non-object in - on line 5
Notice: Trying to get property of non-object in - on line 5
empty true
------------------
$not->set[$key]
PHP Notice: Undefined variable: key in - on line 9
Notice: Undefined variable: key in - on line 9
PHP Notice: Trying to get property of non-object in - on line 9
Notice: Trying to get property of non-object in - on line 9
isset false
PHP Notice: Undefined variable: key in - on line 11
Notice: Undefined variable: key in - on line 11
PHP Notice: Trying to get property of non-object in - on line 11
Notice: Trying to get property of non-object in - on line 11
empty true
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=31715&edit=1