我正在学习PHP,我开始研究全局变量概念。我不太明白为什么这个变量会得到一个未定义的变量"错误。
function function1() {
global $totalGeneral;
$totalGeneral = 42;
}
function function2(){
echo $totalGeneral;
}
我预计42会被打印出来。相反,我得到:
注意:未定义的变量:totalGeneral
阅读variable scope at the PHP manual,我认为添加"全球"足以使变量成为全局变量。
答案 0 :(得分:2)
您忘记将全局包含在第二个功能中。没有它,它永远不会在范围内。
仅仅因为您使用global
关键字并不意味着规则不适用。全局变量总是在函数内部超出范围,除非您使用global
关键字(或将其作为参数传递,或者在闭包的情况下使用use
关键字)。
function function1() {
global $totalGeneral;
$totalGeneral = 42;
}
function function2(){
global $totalGeneral;
echo $totalGeneral;
}
答案 1 :(得分:2)
您还需要在function2()中使变量成为全局变量。
同样全局指令只是说php要从全局变量中获取变量,所以你需要先声明你的变量,所以:
$totalGeneral = 69;
function function1() {
global $totalGeneral;
$totalGeneral = 42;
}
function function2(){
global $totalGeneral;
echo $totalGeneral;
}