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;
не.;-)