Switch statement in PHP injected HTML

php, switch-statement, templates

Solution

I read in the php doc that your example should not work.

Any output (including whitespace) between a switch statement and the first case will result in a syntax error. For example, this is invalid

Try this instead:

<div>
<?php switch($variable): 
case 1: ?>
    <div>
    Newspage
    </div>
<?php break; ?>
<?php case 2: ?>
    </div>
    Forum
    <div>
<?php break; ?>
<?php endswitch; ?>
</div>

http://php.net/control-structures.alternative-syntax

Problem

``` <? switch ($var): ?> <? case 1: ?> It's 1! <? break ?> <? endswitch ?> ``` I want to do something like that, in other words use the switch statement in PHP templates. This is possible with the if statement. The above code generates `Parse error: syntax error, unexpected T_INLINE_HTML, expecting T_ENDSWITCH or T_CASE or T_DEFAULT` in PHP 5.3. The PHP docs suggests that this should be possible. Can someone confirm that this doesn't work, or rather, tell me what I'm doing wrong? Thanks.

Original source