#25667 [Opn]: Strange switch-case behaviour

From: Date: Fri, 26 Sep 2003 08:52:07 +0000
Subject: #25667 [Opn]: Strange switch-case behaviour
References: 1  Groups: php.doc 
Request: Send a blank email to phpdoc+get-969356428@lists.php.net to get a copy of this message
ID: 25667 User updated by: zeug at delirium dot ch Reported By: zeug at delirium dot ch Status: Open Bug Type: Documentation problem Operating System: * PHP Version: Irrelevant New Comment: 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? Previous Comments: ------------------------------------------------------------------------ [2003-09-26 04:45:09] sniper@php.net 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

« previous php.doc (#969356428) next »