我需要将行连接起来以便以后输出(降价处理...)。这就是为什么我使用函数l()
和全局变量$content
的原因。
我的查看代码:
$content = "";
function l($line="") {
global $content;
$content .= $line."\n";
}
l("hello");
echo "+";
echo $content;
echo "-";
输出
+-
我希望:
+Hello-
为什么?我究竟做错了什么?
我正在使用PHP 7.2.6
编辑:
与PHP相关的答案有this one。但是他们没有帮助。我想这个问题与Yii2有关,而更具体地说与Yii2视图处理有关。
答案 0 :(得分:1)
找到了解决方案!疯了!
Yii2呈现视图inside an object instance。
这意味着PHP变量声明
$content = "";
不是全局的,而是位于rendering context的本地。
问题的解决方案是也使全局视图中的变量声明:
global $content = "";
视图中的工作代码现在看起来像这样:
global $content = "";
function l($line="") {
global $content;
$content .= $line."\n";
}
l("hello");
echo "+";
echo $content;
echo "-";
宾果!