Синтаксическая ошибка неожиданная $ end

Это дает мне неожиданный конец, но я не могу найти, где проблема, нет пробелов или отступов до или после EOD. Я использую eval () для замены.

<?php echo <<<EOD
<?php
if((\${$type}s = \$this->{$type}())):
foreach(\${$type}s as \$item):
?>

<tr>
<td><?php echo \$item->Name; ?></td>
<td><?php echo Table::countRows(\$item->Name); ?></td>
<td><?php echo \$item->Engine; ?></td>
<td><a href="<?php echo get_url('cp/system/database/tables/view/'.\$item->Name); ?>">Show</a></td>
<td><a href="<?php echo get_url('cp/system/database/tables/rename/'.\$item->Name); ?>">Rename</a></td>
<td><a href="<?php echo get_url('cp/system/database/tables/delete/'.\$item->Name.'/confirm'); ?>" class="item-remove-button">Delete</a></td>
</tr>

<?php
endforeach;
endif;
?>
EOD; ?>

0

Решение

EOD; потребности быть на линии сам по себе. Вы не можете иметь что-нибудь еще вообще на этой линии.

<?php echo <<<EOD
<?php
if((${$type}s = $this->{$type}())):
foreach(${$type}s as $item):
?>
EOD;
?>

<tr>
<td><?php echo $item->Name; ?></td>
<td><?php echo Table::countRows($item->Name); ?></td>
<td><?php echo $item->Engine; ?></td>
<td><a href="<?php echo get_url('cp/system/database/tables/view/'.$item->Name); ?>">Show</a></td>
<td><a href="<?php echo get_url('cp/system/database/tables/rename/'.$item->Name); ?>">Rename</a></td>
<td><a href="<?php echo get_url('cp/system/database/tables/delete/'.$item->Name.'/confirm'); ?>" class="item-remove-button">Delete</a></td>
</tr>

<?php echo <<<EOD
<?php
endforeach;
endif;
?>
EOD;
?>

Docs: http://us3.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

3

Другие решения

Конечный тег heredoc (здесь EOD) должен быть один на строке (с точкой с запятой).

Переехать ?> на следующей строке.

Но, что более важно, что вы пытаетесь сделать именно?

0

По вопросам рекламы [email protected]