我在文档顶部声明了一个新变量$var
。之后,我调用了一个应该输出这个变量的函数
不幸的是,我收到以下消息:
注意:未定义的变量:var
这是我的代码:
$var = "abc";
func ();
function func() {
echo $var;
}
答案 0 :(得分:2)
在PHP中,函数无法访问全局范围内的变量,除非使用关键字global
来导入'将变量放入函数的范围。
你可以通过这样做来解决它:
function func() {
global $var;
echo $var;
}
在此处详细了解范围界定:http://php.net/manual/en/language.variables.scope.php
函数内使用的任何变量默认都限制在本地函数范围内。
在PHP中,如果要在函数中使用全局变量,则必须在函数内声明全局变量。
也可以使用$GLOBALS
访问全局变量,但除非绝对必要,否则我会避免使用它。
从全局范围访问变量的第二种方法是使用特殊的PHP定义的$ GLOBALS数组。
值得一提:
值得链接到关于全局变量的讨论,以及为什么你可能不想使用它们:Globals are evil 。我说首选使用类,或者只是将变量作为参数传递给函数。我不会说不使用全局变量,但至少要注意它的使用。
答案 1 :(得分:0)
这是因为变量的范围,要么将其定义为全局,要么将其作为参数传递。
查看此帖子下的评论: Variables Scope
答案 2 :(得分:0)
变量的范围是错误的。您需要将其作为函数参数传递或在函数中将其声明为Global。请查看function scoping。
你可以这样做:
$var = "abc";
func ();
function func() {
global var;
echo $var;
}