我有一个全局变量,但是不能在函数中调用它。
我尝试在函数中定义变量并将其修复,但是我需要将该变量设置为全局变量,以便可以在其他函数中调用它。我尝试在变量名称前使用“全局”,但这也不起作用。
$randBoolean = FALSE;
function someFunction(){
if(!$randBoolean){
lineBreak();
$randBoolean = TRUE;
}
}
someFunction();
我在另一个php文档中使用了全局变量,并且效果很好。我不确定是否是因为此全局变量是否为布尔值。
答案 0 :(得分:0)
您必须在函数内部将变量声明为global
。
$randBoolean = FALSE;
function someFunction(){
global $randBoolean;
if(!$randBoolean){
//lineBreak();
$randBoolean = TRUE;
}
}
echo $randBoolean ? 'TRUE' : 'FALSE' ;
someFunction();
echo $randBoolean ? 'TRUE' : 'FALSE';
结果
FALSE
TRUE
当然,出于多种原因,您应该避免使用全局变量,因此最好将变量作为参数传递给函数,在这种情况下,通过引用传递变量,以便函数可以修改其值。
$randBoolean = FALSE;
function someFunction(&$param){
if(!$param){
//lineBreak();
$param= TRUE;
}
}
echo $randBoolean ? 'TRUE' : 'FALSE' ;
someFunction($randBoolean);
echo $randBoolean ? 'TRUE' : 'FALSE';
结果
FALSE
TRUE
答案 1 :(得分:0)
您是否错过了$ randBoolean之前的“全局”。检查$ GLOBALS数组。如果您的变量有引用,您做对了。