Stavo leggendo questa domanda su StackOverflow:
/programming/104516/calling-php-functions-within-heredoc-strings
e la risposta accettata dice di fare semplici template PHP come questo:
template.php:
<Html> <Head> <Title> <? = $ Title?> </ Title> </ Head> <Body> <? = GetContent ()?> </ Body> </ Html>
index.php:
<? Php $ title = 'Titolo demo'; funzione getContent () { return '<p> Ciao mondo! </p>'; } include ( 'template.php'); ?>
Per me quanto sopra non è ben strutturato, nel senso che template.php dipende da variabili definite in altri script. E stai usando un include () per eseguire il codice quando lo fai include('template.php')
(invece di usare include () per includere una classe o una funzione che non viene immediatamente eseguita).
Sento che un approccio migliore è avvolgere il modello all'interno di una funzione:
template.php:
<? Php modello di funzione ($ title, $ content) { ob_start (); ?> <Html> <Head> <Title> <? = $ Title?> </ Title> </ Head> <Body> <? = $ Contenuti?> </ Body> </ Html> <? php return ob_get_clean (); } ?>
index.php:
<? Php require_once ( 'template.php'); modello di stampa ('Demo Title', '<p> Hello World! </p>'); ?>
Il secondo approccio è migliore? C'è un modo ancora migliore per farlo?