ID: 24436
Updated by: [EMAIL PROTECTED]
Reported By: Nico dot Laus dot 2002 at gmx dot de
Status: Open
Bug Type: Zend Engine 2 problem
Operating System: WinXP SP1
PHP Version: 5CVS-2003-07-01 (dev)
New Comment:
FYI: It wasn't a setting, it was me messing with the code ;-)
Previous Comments:
------------------------------------------------------------------------
[2003-07-01 09:51:29] Nico dot Laus dot 2001 at gmx dot de
same with me - I had the same output with your code
and btw: I haven't found any setting for this in php.ini
------------------------------------------------------------------------
[2003-07-01 09:43:09] postings-php-bug at hans-spath dot de
This is really weird:
===> CODE 1 <===
<?
error_reporting( E_ALL );
define( 'N', "\n" );
class test {
function test() {
echo "test\n";
if( empty($this->a[0][0]) ) echo 'empty($this->a[0][0])', N;
if( empty($this->a[0]) ) echo 'empty($this->a[0])', N;
if( empty($this->a) ) echo 'empty($this->a)', N;
if( ! isset($this->a) ) echo 'isset($this->a)', N;
if( ! isset($this->a[0]) ) echo 'isset($this->a[0])', N;
if( ! isset($this->a[0][0]) ) echo 'isset($this->a[0][0])', N;
}
}
$x = new test();
===> OUTPUT (CODE 1) <===
test
empty($this->a[0][0])
empty($this->a[0])
empty($this->a)
isset($this->a)
isset($this->a[0])
isset($this->a[0][0])
===> CODE 2 <===
<?
error_reporting( E_ALL );
define( 'N', "\n" );
class test {
function test() {
echo "test\n";
if( empty($this->a[0][0]) ) echo 'empty($this->a[0][0])', N;
// if( empty($this->a[0]) ) echo 'empty($this->a[0])', N;
// if( empty($this->a) ) echo 'empty($this->a)', N;
// if( ! isset($this->a) ) echo 'isset($this->a)', N;
// if( ! isset($this->a[0]) ) echo 'isset($this->a[0])', N;
if( ! isset($this->a[0][0]) ) echo 'isset($this->a[0][0])', N;
}
}
$x = new test();
===> OUTPUT (CODE 2) <===
PHP Notice: Undefined property: test::$a in M:\php\test.php on line
8
PHP Notice: Undefined property: test::$a in M:\php\test.php on line
13
test
<br />
<b>Notice</b>: Undefined property: test::$a in <b>M:\php\test.php</b>
on line <b>8</b><br />
empty($this->a[0][0])
<br />
<b>Notice</b>: Undefined property: test::$a in <b>M:\php\test.php</b>
on line <b>13</b><br />
isset($this->a[0][0])
===> PHP Version <===
PHP 5.0.0b2-dev (cgi-fcgi) (built: Jul 1 2003 12:10:02)
Copyright (c) 1997-2003 The PHP Group
Zend Engine v2.0.0-dev, Copyright (c) 1998-2003 Zend Technologies
------------------------------------------------------------------------
[2003-07-01 09:40:12] Nico dot Laus dot 2001 at gmx dot de
hmmm, I will check my php.ini, maybe I can configure my php in the way
yours is, that no such errors are displayed (this is what I want)
-> I'll let you know whether I can change this with php.ini or it is
really a bug ;)
------------------------------------------------------------------------
[2003-07-01 09:29:43] [EMAIL PROTECTED]
Ah, no, that was my fault, it gives errors now. But no errors *at all*
with this:
<?php
error_reporting(E_ALL);
class test {
function __construct() {
if (empty($this->test[0][0])) { print "test1\n";}
if (!isset($this->test[0][0])) { print "test2\n";}
if (empty($this->test)) { print "test1\n";}
if (!isset($this->test)) { print "test2\n";}
}
}
$test1 = new test();
?>
Here it should have given 3 errors, for both the [0][0] ones, and the
empty($this->test) one.
------------------------------------------------------------------------
[2003-07-01 09:25:03] Nico dot Laus dot 2001 at gmx dot de
is your error_reporting set to E_ALL?
-> then it should display them, too
of course I can disable showing NOTICE-errors, but I'll better show/log
them to find possible bugs
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/24436
--
Edit this bug report at http://bugs.php.net/?id=24436&edit=1