ID: 20548 User updated by: prgallier at yahoo dot com Reported By: prgallier at yahoo dot com Status: Wont fix Bug Type: Scripting Engine problem Operating System: Linux 2.4 PHP Version: 4.3.2-dev New Comment:
There are plenty of workarounds, but the problem is the lack of consistency. Either you can or you can't use uninitialized variables. If you can use $test[0]++ you should be able to use $test[0]-- as well (no, I don't think they should drop the ability to use direct increments/decrements). Previous Comments: ------------------------------------------------------------------------ [2003-09-27 16:47:47] [EMAIL PROTECTED] IMO, using unitialized variables should cause a FATAL error. Just initialize the variables you use. ------------------------------------------------------------------------ [2003-09-27 14:38:53] lew at mailduct dot com PHP 4.3.3 on FreeBSD 4.8-RELEASE: <?php // Increment some blank/empty variables... $pos++; $pos++; $pos++; $neg--; $neg--; $neg--; // Show them to us now... print( "pos = $pos\n" ); print( "neg = $neg\n" ); // Now do it another way (forced typecast)... $ppp += 1; $ppp += 1; $ppp += 1; $nnn -= 1; $nnn -= 1; $nnn -= 1; // Show them to us now... print( "ppp = $ppp\n" ); print( "nnn = $nnn\n" ); # # Expected: # pos = 3 ppp = 3 # neg = -3 nnn = -3 # # Actual: # pos = 3 ppp = 3 # neg = nnn = -3 ?> ------------------------------------------------------------------------ [2003-09-27 14:36:59] lew at mailduct dot com This is a GROSS inconsistency in how the increment/decrement operators work, and one that coders are likely to stumble upon the hard way. Please study the effect of fixing this, at the expense of breaking a long-time quirk in BC. Breaking a quirk, and documenting it on the BC page, is better than maintaining a GROSS inconsistency in one of the basic language construct operators! Please fix this! ------------------------------------------------------------------------ [2003-08-03 12:57:49] [EMAIL PROTECTED] This is a valid bug, however a fix would be a BC break that would result in a beahviour change that was in place since 3.0 days. ------------------------------------------------------------------------ [2003-02-14 17:14:59] bulletbait at yahoo dot com I just stumbled across this bug recently with an older version (4.1.1) of PHP on Win32 -- verified that it still exists in 4.3.0. This one had me going in circles trying to debug. Work-arounds: $score[$num] -= 1; or $score[$num] = $score[$num] - 1; ------------------------------------------------------------------------ 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/20548 -- Edit this bug report at http://bugs.php.net/?id=20548&edit=1