ID: 25667
Comment by: tony2001 at phpclub dot net
Reported By: zeug at delirium dot ch
Status: Open
Bug Type: Documentation problem
Operating System: *
PHP Version: Irrelevant
New Comment:
just don't open/close php-tags on every line of your script.
<?
switch () {
//as many empty lines as you want.
case 1:
break;
}
?>
Previous Comments:
------------------------------------------------------------------------
[2003-09-26 04:52:07] zeug at delirium dot ch
Wow, that was fast :-)
Why shouldn't you be allowed to have whitespace between the opening
switch and the first case clause when it's okay to have whitespace
between case clauses and the final case/default clause and endswitch -
unless of cause eliminating this exception means messing up the parser
code?
------------------------------------------------------------------------
[2003-09-26 04:45:09] [EMAIL PROTECTED]
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;
}
?>
------------------------------------------------------------------------
[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