Это дает мне неожиданный конец $, но я не могу найти, где проблема, нет пробелов или отступов до или после 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; ?>
Вы понимаете, что ' Php echo $ item-> Name; ?> 'будет * ran * и не повторился буквально, не так ли? Вы буквально эхом отдаете 'foreach ($ {$ type} s как $ item)', но затем * running * ' Php echo $ item-> Name; ?> '. Что вы пытаетесь сделать с этим кодом? –
@RocketHazmat да, я знаю это, поэтому я исправил вышеуказанный код. Это будет использоваться как шаблон для создания узлов. Теперь он работает так, как предполагалось. Не знал об EOD; нуждаясь в одиночестве. – user3718566