在函数内部访问全局$ foo
问题描述:
我试图在函数内部访问global $foo
,但它不会工作。我不想在调用函数时添加它。最佳做法是什么?
global $foo;
$foo = 'norman';
function kit($name)
{
if($foo == $name){echo 'Works';}else{echo 'Does not work';}
}
kit('norman')
答
你需要“进口”到本地函数范围由它声明为全球内功能:
function kit($name)
{
global $foo;
if($foo == $name){echo 'Works';}else{echo 'Does not work';}
}
您可以安全地从otuside功能删除全局修改。
答
声明在函数外部的全局变量不能在函数内部被访问尝试声明全局函数本身。
改成这样
function kit($name)
{
global $foo;
if($foo == $name){echo 'Works';}else{echo 'Does not work';}
}
我想你忘了阅读[全局上的文档(http://php.net/manual/en/language.variables.scope.php)。这太糟糕了,因为所有的答案都在那里。什么阻止你阅读文档? – 2013-05-01 10:06:48