ID: 26671
User updated by: memoimyself at yahoo dot com dot br
Reported By: memoimyself at yahoo dot com dot br
-Status: Feedback
+Status: Open
Bug Type: Scripting Engine problem
Operating System: Windows 2000 SP 4
PHP Version: 4.3.4
New Comment:
Yes, I am positive. In fact, I was getting this error when debugging a
class I'd written. I then created a simple test script (which I posted
here) by typing (not by copying and pasting) everything again, and the
error came up again. If I comment out the "default:" line, everything
works well. Damned if I know what's going on. :-)
Previous Comments:
------------------------------------------------------------------------
[2003-12-19 18:43:08] [EMAIL PROTECTED]
Works fine for me, same system:
D:\PHP>php test.php
Content-type: text/html
X-Powered-By: PHP/4.3.4
a
D:\PHP>
Are you sure, that you don't have some control-character or anything
like that in your code? Please retest.
------------------------------------------------------------------------
[2003-12-19 16:07:32] memoimyself at yahoo dot com dot br
Description:
------------
The "switch" statement fails when a "default" case is included, as in
the example below. It makes no difference if there's a "break" at the
end of the default case.
I'm not leaving out any parentheses, braces or semi-colons. In fact,
all you need to do in order to get the switch statement below to work
is comment out the last two lines before the closing brace.
Reproduce code:
---------------
$test = 'a';
switch ($test)
{
case 'a':
print 'a';
break;
case 'b':
print 'b';
break;
default:
print 'neither';
}
Expected result:
----------------
String 'a' should be printed on screen.
Actual result:
--------------
Parse error: parse error, unexpected T_DEFAULT in
D:\htdocs\Test\test.php on line 12
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=26671&edit=1