Нашли решение! Сумасшедший!
Yii2 отображает представление внутри экземпляра объекта .
Это означает, что объявление переменной PHP
$content = "";
не является глобальным, но локальным для контекста рендеринга .
Решение вопроса состоит в том, чтобы также сделать объявление переменной в представлении глобальным:
global $content = "";
Рабочий код внутри представления теперь выглядит следующим образом:
global $content = "";
function l($line="") {
global $content;
$content .= $line."\n";
}
l("hello");
echo "+";
echo $content;
echo "-";
Бинго!