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

Reply via email to