Я читав це запитання в режимі 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>');
?>
Чи краще другий підхід? Чи є ще кращий спосіб це зробити?