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?