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