ใน PHP การประกาศสตริง HEREDOC มีประโยชน์มากสำหรับการส่งออกบล็อกของ html คุณสามารถแยกวิเคราะห์ในตัวแปรได้เพียงแค่นำหน้าด้วย $ แต่สำหรับไวยากรณ์ที่ซับซ้อนมากขึ้น (เช่น $ var [2] [3]) คุณต้องใส่นิพจน์ของคุณไว้ในเครื่องหมายวงเล็บ {}
ใน PHP 5 เป็นไปได้ที่จะเรียกใช้ฟังก์ชันภายใน {} วงเล็บปีกกาภายในสตริง HEREDOC แต่คุณต้องดำเนินการเล็กน้อย ชื่อฟังก์ชันจะต้องถูกเก็บไว้ในตัวแปรและคุณต้องเรียกมันให้เหมือนกับว่ามันเป็นฟังก์ชันที่ตั้งชื่อแบบไดนามิก ตัวอย่างเช่น:
$fn = 'testfunction';
function testfunction() { return 'ok'; }
$string = <<< heredoc
plain text and now a function: {$fn()}
heredoc;
อย่างที่คุณเห็นสิ่งนี้ค่อนข้างยุ่งเหยิงมากกว่า:
$string = <<< heredoc
plain text and now a function: {testfunction()}
heredoc;
มีวิธีอื่นนอกเหนือจากตัวอย่างโค้ดแรกเช่นการแตกออกจาก HEREDOC เพื่อเรียกใช้ฟังก์ชันหรือย้อนกลับปัญหาและทำสิ่งต่างๆเช่น:
?>
<!-- directly output html and only breaking into php for the function -->
plain text and now a function: <?PHP print testfunction(); ?>
อย่างหลังมีข้อเสียตรงที่เอาท์พุทใส่ลงในสตรีมเอาท์พุทโดยตรง (เว้นแต่ฉันจะใช้บัฟเฟอร์เอาท์พุท) ซึ่งอาจไม่ใช่สิ่งที่ฉันต้องการ
ดังนั้นสาระสำคัญของคำถามของฉันคือ: มีวิธีการที่หรูหรากว่านี้หรือไม่?
แก้ไขตามการตอบสนอง:ดูเหมือนว่าเครื่องมือเทมเพลตบางประเภทจะทำให้ชีวิตของฉันง่ายขึ้นมาก แต่โดยพื้นฐานแล้วฉันจะต้องเปลี่ยนสไตล์ PHP ตามปกติของฉัน ไม่ใช่ว่านั่นเป็นสิ่งที่ไม่ดี แต่มันอธิบายถึงความเฉื่อยของฉัน .. ฉันพร้อมที่จะหาวิธีที่จะทำให้ชีวิตง่ายขึ้นดังนั้นตอนนี้ฉันกำลังมองหาเทมเพลต
Text {$string1} Text {$string2} Text
ในพันธุกรรม