Пример кода в вопросе:
<?php
function foo($x) {
?> // <-- PHP end tag in question
<ul>
<li>Coffee</li>
<li>Tea</li>
<li>Milk</li>
</ul>
<?php
return ;
}
?>
Я пытаюсь решить, является ли это приемлемым стандартом кодирования / практикой кодирования в логическом файле PHP, и каковы недостатки этого метода по сравнению с другими html-схемами печати / преобразования.
Есть документация по PHP Строки который вы найдете очень полезным. Это объясняет разницу между одинарными кавычками, двойными кавычками, heredoc и синтаксисом nowdoc. Я не хочу высказывать свое мнение по этому вопросу, но я не думаю, что метод, который вы продемонстрировали, очень часто используется.
Логика, которую вы предоставили, не приемлема.
Вы можете сделать это:
<?
function foo($x) {
$var = <<<END
<ul>
<li>Coffee</li>
<li>Tea</li>
<li>Milk</li>
</ul>
END;
echo $var;
}
foo();
// OR You Can do this:
function foo2($x){
$var = <<<END
<ul>
<li>Coffee</li>
<li>Tea</li>
<li>Milk</li>
</ul>
END;
return $var;
}
echo foo2();
//If the function is only intended for printing just use global variables as you haven't used the $x argument..
?>
* Также обратите внимание, что после пробела не должно быть пробелов
<<<END
и до
END;
Из-за этого я не выделил их справа внутри функции.
Функция не возвращает значение, поэтому попытка использовать его в сочетании с техническими запросами конкатернизации строки невозможна.
Например:
function bar() {
$concat = "Give me " . foo(null) . " please" ;
}
будет выводить