ID:               40248
 Updated by:       [EMAIL PROTECTED]
 Reported By:      jontsa at amigaone dot cc
 Status:           Open
-Bug Type:         Documentation problem
+Bug Type:         Class/Object related
 Operating System: Solaris
 PHP Version:      5.2.0
 New Comment:

I gave two reasons why this is a bug:

1. Consistency
1a. $b->a += 5 should be semantic equivalent to $b->a = $b->a + 5.
Later produces notice, former not.
1b. Both $a += 5 and $a = $a + 5 produces notice (same for arrays).
Object properties miss one notice.

2. Error-prone
The notice is here to inform the programmer about working with
undefined variable/property/index. Adding a value to a property is
clearly a usage of the property.

Jani gave one reason (operator precedence) which is erroneous because
$b->a alone issues the notice too.

Discussed on internals: http://news.php.net/php.internals/31732

Before bogusing this report again please provide some real arguments on
[EMAIL PROTECTED]


Previous Comments:
------------------------------------------------------------------------

[2007-08-19 20:12:24] [EMAIL PROTECTED]

*sigh*

If you don't want to document it, let someone else document it. This is
_NOT_ any bug.

------------------------------------------------------------------------

[2007-08-18 08:26:19] [EMAIL PROTECTED]

<?php
$c = $c + 5; // Notice
$a += 5; // Notice

$b = new stdClass;
$b->a; // Notice
$b->c = $b->c + 5; // Notice
$b->a += 5;
?>

It really is not a rocket science. This behavior is inconsistent and
errors-hiding. The explanation through operator precedence doesn't work
as $b->a alone issues the notice too.

If you don't want to fix it then leave it to others.

------------------------------------------------------------------------

[2007-08-17 23:34:16] [EMAIL PROTECTED]

Operator precedence. $b->a happens before += and thus the property does
exist before assignment. Not really rocket science. Now go document it.

------------------------------------------------------------------------

[2007-08-17 16:05:48] [EMAIL PROTECTED]

If this incostitent and possibly-errors-hiding behavior should be
documented as a feature it should be explained why PHP behaves this
way.

Please write down the reasons why this is the correct behavior. I
provided two reasons why this is more bug than a feature.

------------------------------------------------------------------------

[2007-08-17 13:37:23] [EMAIL PROTECTED]

Because it is.

------------------------------------------------------------------------

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/40248

-- 
Edit this bug report at http://bugs.php.net/?id=40248&edit=1

Reply via email to