Вы можете выполнять функции в строке HEREDOC с помощью {$
выражений переменных. Однако вам необходимо заранее определить переменную для имени функции:
$number_format = "number_format";
$table .= <<<EOT
<tr>
<td>{$row['my_number']}</td> // WORKS
<td>$myNumber</td> // WORKS
<td>{$number_format($row['my_number'])}</td> // DOES NOT WORK!
</tr>
Так что этот вид победы над целью краткости HEREDOCs.
Для удобства чтения было бы еще более полезно определить для этой цели общее / пустое имя функции, например $expr = "htmlentities";
. Затем вы можете использовать практически любое сложное выражение и все глобальные функции в heredoc или двойных кавычках:
" <td> {$expr(number_format($num + 7) . ':')} </td> "
И я думаю, {$expr(
просто более очевиден для любого, кто сталкивается с такой конструкцией. (В противном случае это просто странный обходной путь.)