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