T_INLINE_HTML? Что с этим не так?

<? switch($data['type']) : ?>
<? case 'log': ?>

    <? while ($row = $data['loop']->fetch()) : ?>
        <table class="t-errors">
            <tr>
                <td>
                    <b>IP:</b> <? echo $row['LogShellIP']; ?>
                    <b>Command:</b> <? echo $row['LogShellCommand']; ?>
                    <b>Executed:</b> <? echo $row['LogShellReturn']; ?>
                    <b>Time:</b> <? echo format::time($row['LogShellTime']); ?>
                </td>
            </tr>
        </table>
    <? endwhile; ?>

<? break; ?>

<? case 'fatal': ?>
<? case 'warning': ?>
<? case 'notice': ?>
<? case 'unknown': ?>

    <? while ($row = $data['loop']->fetch()) : ?>
        <table class="t-errors">
            <tr>
                <td <? if ($row['LogErrorSeen'] == 0) { echo 'class="e-selected"'; } ?>>
                    <b>String:</b> <? echo $row['LogErrorString']; ?>
                    <b>File:</b> <? echo $row['LogErrorFile']; ?>
                    <b>Line:</b> <? echo $row['LogErrorLine']; ?>
                    <b>Context:</b> <? echo $row['LogErrorContext']; ?>
                    <b>Ip:</b> <? echo $row['LogErrorIP']; ?>
                    <b>Time:</b> <? echo format::time($row['LogErrorTime']); ?>
                </td>
            </tr>
        </table>
    <? endwhile; ?>

<? break; ?>
<? endswitch; ?>                    

Я получаю эту ошибку:

Ошибка синтаксического анализа: синтаксическая ошибка, неожиданный T_INLINE_HTML, ожидаемый T_ENDSWITCH или T_CASE или T_DEFAULT в /Applications/XAMPP/xamppfiles/htdocs/Smooth Framework/tpl/terminal.tpl.php в строке 33

Где линия 33 это линия 2 этого сценария. Это вставлено в контекст шаблона. Что с этим не так? Он ожидает T_CASE и вот что там!

2 ответа

Решение

Объединить строки 1 и 2

  <? switch($data['type']):
     case 'log': ?>

см. комментарий в этой ссылке (Иеремия в gmx dot 28-Jan-2008 02:52)

Парсер ожидает токен T_CASE, но находит новую строку после switch($data['type']) : ?>,

switch (1) : ?> <? case 1: break; endswitch;

выдает ошибку разбора и тоже

switch (1) : ?>\n<? case 1: break; endswitch;

в то время как

switch (1) : ?><? case 1: break; endswitch; 

не.;-)

Другие вопросы по тегам