Saya membaca pertanyaan ini di stackoverflow:
/programming/104516/calling-php-functions-within-heredoc-strings
dan jawaban yang diterima mengatakan untuk melakukan templat PHP biasa seperti ini:
template.php:
<html> <head> <title><?=$title?> </title> </head> <body> <? = getContent ()?> </body> </html>
index.php:
<? php $ title = 'Judul Demo'; function getContent () { return '<p> Hello World! </p>'; } termasuk ('template.php'); ?>
Bagi saya hal di atas tidak terstruktur dengan baik dalam arti bahwa template.php tergantung pada variabel yang didefinisikan dalam skrip lain. Dan Anda menggunakan include () untuk mengeksekusi kode ketika Anda melakukannya include('template.php')
(bukan menggunakan include () untuk menyertakan kelas atau fungsi yang tidak segera dieksekusi).
Saya merasa pendekatan yang lebih baik adalah dengan membungkus template Anda di dalam suatu fungsi:
template.php:
<? php templat fungsi ($ judul, $ konten) { ob_start (); ?> <html> <head> <title><?=$title?> </title> </head> <body> <? = $ content?> </body> </html> <? php return ob_get_clean (); } ?>
index.php:
<? php require_once ('template.php'); print template ('Demo Title', '<p> Hello World! </p>'); ?>
Apakah pendekatan kedua lebih baik? Apakah ada cara yang lebih baik untuk melakukannya?