我需要连接行以便以后输出(降价处理......)。这就是为什么我使用函数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视图处理。
找到了解决方案!疯!
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 "-";
答对了!