PHP, heredoc dize bildirimleri html bloğunu çıkış için gerçekten yararlıdır. Bunu sadece $ ile önek ile değişkenlerin ayrıştırmak olabilir, ancak daha karmaşık sözdizimi için ($ var gibi [2] [3]), içeride {} parantez ifadenizi koymak zorunda.
PHP 5, bu is mümkün aslında {} bir heredoc dize içinde parantez içinde bir işlev çağrıları, ancak iş biraz geçmek zorunda yapmak için. İşlev adı kendisi bir değişkende saklanır vardır, ve bunu bir dinamik adlı fonksiyonu gibi aramak zorunda. Örneğin:
$fn = 'testfunction';
function testfunction() { return 'ok'; }
$string = <<< heredoc
plain text and now a function: {$fn()}
heredoc;
Gördüğünüz gibi, bu biraz daha dağınık sadece daha:
$string = <<< heredoc
plain text and now a function: {testfunction()}
heredoc;
Böyle işlevini çağırmak için heredoc çıkmayı, ya da sorunu ters ve benzeri bir şey yapıyor gibi ilk kod örneği dışında başka yolları vardır:
?>
<!-- directly output html and only breaking into php for the function -->
plain text and now a function: <?PHP print testfunction(); ?>
İkincisi ne istiyorum olmayabilir ki, (Ben, çıktı tamponlama kullanıyorum sürece) çıkışı doğrudan çıkış akışı içine konur dezavantajı vardır.
Yani, benim soru özü: Bu yaklaşım daha şık bir yolu var mı?
Edit based on responses: Bu kesinlikle şablon motoru çeşit benim hayat çok daha kolay kılacak gibi görünüyor, ama bana temelde benim her zamanki PHP tarzı ters gerektirir. Bu kötü bir şey, ama benim ataleti açıklıyor değil .. Gerçi hayatı kolaylaştırmak için yollar bulmaktan kadar değilim, bu yüzden şimdi şablonlar içine arıyorum.