/ / постави низ в променлива, използвайки <? ?> - php, html, тагове

въведете низ в променлива, използвайки <? ?> - php, html, тагове

Мисля, че понякога е по-лесно да използвате php тагове вместо echo например

<?
if()
echo "<img src="/images/" onclick="alert("hello")"/>";
?>

вместо това аз код като този

<?
if(){
?>
<img src="/images/" onclick="alert("hello")"/>
<?}
?>

Ние се отървахме от обратното накланяне. Но какво да кажем за низове, които искам нещо такова:

<?
$str="?>
<img src="/images/" onclick="alert("hello")"/>
<?";
?>

Отговори:

6 за отговор № 1

Трябва да използвате синтаксиса на PHP heredoc:

<?php
$str = <<<IMGTAG
<img src="/images/" onclick="alert("hello")"/>
IMGTAG;

echo $str;
?>

Насладете се на кода си.


1 за отговор № 2

Има алтернативен Синтаксис специално за този вид формиране:

<?php if (x): ?>
<div>...</div>
<?php endif; ?>

Също така има къси маркери:

<?= "hello world" ?>

Това директно отпечатва низ и е равен на:

<?php echo "hello world" ?>

За задаване на низове можете да направите това, което Magicianred предложи. Можете да го направите и с буфериране на изходни данни:

<?php ob_start(); ?>
<div>test</div>
<?php
$str = ob_get_contents();
ob_end_clean();
echo $str;
?>

Въпреки че не бива да се злоупотребява с буферирането на изхода, синтаксисът на Heredoc е най-доброто решение тук.