Czytałem to pytanie przy przepełnieniu stosu:
/programming/104516/calling-php-functions-within-heredoc-strings
a zaakceptowana odpowiedź mówi, aby robić proste szablony PHP takie jak to:
template.php:
<html>
<head>
<title><?=$title?> </title>
</head>
<body>
<? = getContent ()?>
</body>
</html>
index.php:
<? php
$ title = „Tytuł demonstracyjny”;
funkcja getContent () {
return '<p> Witaj świecie! </p>';
}
include („template.php”);
?>
Dla mnie powyższe nie jest dobrze skonstruowane w tym sensie, że template.php zależy od zmiennych zdefiniowanych w innych skryptach. I używasz metody include () do wykonywania kodu, kiedy to robisz include('template.php')(w przeciwieństwie do metody include () w celu uwzględnienia klasy lub funkcji, która nie jest natychmiast wykonywana).
Wydaje mi się, że lepszym rozwiązaniem jest zawinięcie szablonu w funkcję:
template.php:
<? php
szablon funkcji ($ tytuł, $ treść) {
ob_start (); ?>
<html>
<head>
<title><?=$title?> </title>
</head>
<body>
<? = $ content?>
</body>
</html>
<? php return ob_get_clean ();
}
?>
index.php:
<? php
requ_once ('template.php');
szablon wydruku („Tytuł demonstracji”, „<p> Hello World! </p>”);
?>
Czy drugie podejście jest lepsze? Czy jest na to lepszy sposób?