ID: 25667
Updated by: [EMAIL PROTECTED]
Reported By: zeug at delirium dot ch
-Status: Verified
+Status: Open
-Bug Type: Scripting Engine problem
+Bug Type: Documentation problem
-Operating System: Linux 2.4.20-3-386
+Operating System: *
-PHP Version: 4.3.4-dev, 5.0.0b2-dev
+PHP Version: Irrelevant
New Comment:
Actually this is not bug. You can't have anything between
switch()..case.. ever. It's not valid.
This is same as what you tried:
<?php
$var = 1;
switch (1) {
echo " ";
case 1:
echo $var;
}
?>
Previous Comments:
------------------------------------------------------------------------
[2003-09-26 04:34:08] zeug at delirium dot ch
Description:
------------
Hi there
This is a very minor bug concerning the structure of a source code
rather than its functionality. It's been dealt with in Bug #13387, yet
the case was closed back then when it seems to have been fixed in
4.2.0-dev. It's back in 4.3.3.
Here are some examples:
Example 1, okay:
<?php switch ($var): ?>
<?php case 1: ?>
<?php dothis() ?>
<?php endswitch ?>
Example 2, okay:
<?php switch ($var) { ?>
<?php case 1: ?>
<?php dothis() ?>
<?php } ?>
Example 3, syntax error:
<?php switch ($var): ?>
<?php case 1: ?>
<?php dothis() ?>
<?php endswitch ?>
The parser doesn't seem to like whitespace in HTML between switch and
case.
When mixing PHP and HTML code, the syntax in example 3 can improve
readablility.
Reproduce code:
---------------
<?php $var = 1 ?>
<?php switch ($var): ?>
<?php case 1: ?>
<?php print $var ?>
<?php endswitch ?>
Expected result:
----------------
1
Actual result:
--------------
Parse error: parse error, expecting `T_ENDSWITCH' or `T_CASE' or
`T_DEFAULT' in .../test.php on line 4
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=25667&edit=1