Комбинированный режим switch

Хотел сделать комбинированный режим PHP+HTML с конструкцией switch, но я как всегда сделал ошибку. Что я сделал не так?

<?php 
$a = 2;             
?>

<?php  switch($a): ?>     

<?php case 1: ?>            
<div class =""> вода </div>
<?php break; ?>              
     
     
<?php case 2: ?>  
<div class =""> дерево </div>
<?php break; ?>  


<?php default:  ?>                   
<div class =""> ничего не найдено </div>
<?php break; ?>  

<?php endswitch; ?>  

Код без пробелов:

<?php 
$a = 2;             
?>
<?php switch($a): ?>    
<?php case 1: ?>            
<div class ="">вода</div>
<?php break; ?>                 
<?php case 2: ?>  
<div class ="">дерево</div>
<?php break; ?>  
<?php default: ?>                   
<div class ="">ничего не найдено</div>
<?php break; ?>  
<?php endswitch; ?>  


Ответы (1 шт):

Автор решения: Алексей Шиманский

Из документации:

Внимание

Любой вывод (включая пробельные символы) между выражением switch и первым case приведут к синтаксической ошибке. Например, данный код не будет работать:

<?php switch ($foo): ?>
    <?php case 1: ?>
    ... 
<?php endswitch ?> 

В то же время следующий пример будет работать, так как завершающий перевод строки после выражения switch считается частью закрывающего ?> и следовательно ничего не выводится между switch и case:

<?php switch ($foo): ?> 
<?php case 1: ?>
... 
<?php endswitch ?>

В конце строк у вас полно пробелов. Между строк тоже.

→ Ссылка