Ich habe diese Frage über Stackoverflow gelesen:
/programming/104516/calling-php-functions-within-heredoc-strings
und die akzeptierte Antwort lautet:
template.php:
<html> <head> <title> <? = $ title?> </ title> </ head> <body> <? = getContent ()?> </ body> </ html>
index.php:
<? php $ title = 'Demo Title'; Funktion getContent () { return '<p> Hallo Welt! </ p>'; } include ('template.php'); ?>
Für mich ist das oben Genannte in dem Sinne nicht gut strukturiert, dass template.php von Variablen abhängt, die in anderen Skripten definiert sind. Und Sie verwenden ein include (), um Code auszuführen, wenn Sie dies tun include('template.php')
(im Gegensatz zu include (), um eine Klasse oder eine Funktion einzuschließen, die nicht sofort ausgeführt wird).
Ich denke, ein besserer Ansatz ist es, Ihre Vorlage in eine Funktion zu packen:
template.php:
<? php Funktionsvorlage ($ title, $ content) { ob_start (); ?> <html> <head> <title> <? = $ title?> </ title> </ head> <body> <? = $ content?> </ body> </ html> <? php return ob_get_clean (); } ?>
index.php:
<? php require_once ('template.php'); Druckvorlage ('Demo-Titel', '<p> Hallo Welt! </ p>'); ?>
Ist der zweite Ansatz besser? Gibt es einen noch besseren Weg, dies zu tun?