在PHP中从函数内部访问全局变量

sik*_*kas 0 php global-variables

我想使用PHP声明一个全局变量,并在函数内部使用.

我试过了:

$var = "something";
function foo()
{
    echo $var;
}
Run Code Online (Sandbox Code Playgroud)

但我收到一个错误,指出$var未定义.

我怎么解决这个问题?

mis*_*inx 7

$var = "something";
function foo()
{
    global $var;
    echo $var;
}
Run Code Online (Sandbox Code Playgroud)

当您需要使用在函数范围之外声明的变量时,请使用术语"全局".


dec*_*eze 5

PHP变量具有函数范围.即,函数内部的变量不能从外部访问,并且全局变量不能(默认情况下)从内部函数访问.虽然使用global函数内部关键字来导入/导出变量是一种解决方案,但您不应该这样做.功能应该是独立的; 如果你需要一个函数内部的值,将它作为参数传递,如果函数需要修改全局值,return则从它们.

例:

function foo($arg)
{
    echo $arg;
}
$var = "something";
foo($var);
Run Code Online (Sandbox Code Playgroud)

请阅读:http://php.net/manual/en/language.variables.scope.php