CakePHP视图变量范围问题

CakePHP视图变量范围问题,cakephp,view,global-variables,Cakephp,View,Global Variables,我的视图文件中有这些行 //////////////////////////// $a = 5; showme() showme() { global $a; echo $a; } //////////////////////////////// 问题:$a在showme()函数中不可访问 我没有选择将$a作为参数传递,也没有选择从视图中移动函数。而且它只能通过global关键字在函数中访问 我可以将声明方式更改为$a您缺少分号来结束后面的语句: $a = 5; showme()

我的视图文件中有这些行

////////////////////////////

$a = 5;
showme()

showme()
{
 global $a;
 echo $a;
}

////////////////////////////////
问题:$a在showme()函数中不可访问

我没有选择将
$a
作为参数传递,也没有选择从视图中移动函数。而且它只能通过
global
关键字在函数中访问


我可以将声明方式更改为
$a

您缺少分号来结束后面的语句:

$a = 5;
showme()
改为:

$a = 5;
showme();
您的代码似乎正常,应该可以运行,但不确定,如果您在类中,可以尝试以下操作:

$a = 5;
$this->showme();

问题是$a实际上不是在全局范围中定义的,而是在视图模板中定义的。所以,

global $a;
没有像你期望的那样工作

我不确定这是否有效,但您至少可以尝试一下:

$GLOBALS['a'] = 5;

function showme(){
   echo $GLOBALS['a'];
}

将变量传递给函数是否很糟糕?不管怎么说,全球化通常是个坏主意。