Я читав це запитання в режимі stackoverflow:
/programming/104516/calling-php-functions-within-heredoc-strings
і прийнята відповідь говорить робити звичайні шаблони PHP на зразок цього:
template.php:
<html> <head> <title><?=$title?> </title> </head> <ніхто> <? = getContent ()?> </body> </html>
index.php:
<? php $ title = 'Демонстраційний заголовок'; функція getContent () { повернути '<p> Привіт, світ! </p>'; } include ('template.php'); ?>
Для мене вищезазначене недостатньо структуровано в тому сенсі, що template.php залежить від змінних, визначених в інших сценаріях. І ви використовуєте include () для виконання коду, коли ви це робите include('template.php')
(на відміну від використання include () для включення класу або функції, яка не виконується негайно).
Я вважаю, що кращим підходом є загортання шаблону всередині функції:
template.php:
<? php шаблон функції ($ title, $ content) { ob_start (); ?> <html> <head> <title><?=$title?> </title> </head> <ніхто> <? = $ вміст?> </body> </html> <? php повернути ob_get_clean (); } ?>
index.php:
<? php need_once ('template.php'); шаблон друку ('Demo Title', '<p> Hello World! </p>'); ?>
Чи краще другий підхід? Чи є ще кращий спосіб це зробити?