繁体   English   中英

Yii2:全局变量

[英]Yii2: Global variable in view

我需要将行连接起来以便以后输出(降价处理...)。 这就是为什么我使用函数l()和全局变量$content

我的查看代码:

$content = "";
function l($line="") {
    global $content;
    $content .= $line."\n";
}
l("hello");
echo "+";
echo $content;
echo "-";

输出

+-

我期望:

+Hello-

为什么? 我究竟做错了什么?

我正在使用PHP 7.2.6

编辑:

有几个PHP相关的答案,因为这一个 但是他们没有帮助。 我想这个问题与Yii2有关,更具体地说与Yii2视图处理有关。

找到了解决方案! 疯!

Yii2 在对象实例内部渲染视图。

这意味着,PHP变量声明

$content = "";

不是全局的而是局部的渲染上下文

问题的解决方案是也使全局视图中的变量声明:

global $content = "";

视图中的工作代码现在看起来像这样:

global $content = "";
function l($line="") {
    global $content;
    $content .= $line."\n";
}
l("hello");
echo "+";
echo $content;
echo "-";

答对了!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM