All*_*n S 1 php variables global-variables
这让我大吃一惊......
我有一个独立的PHP文件,以及一个带有全局变量的简单函数.
<?php
$var = 4;
function echoVar()
{
echo $var;
}
echoVar();
?>
Run Code Online (Sandbox Code Playgroud)
当我打电话echoVar()什么都没有返回...但是如果我把$var函数放在里面它将返回4.
这里发生了什么?$var在这种情况下不应该是全球性的吗?
如果变量设置在函数外部,则在该函数内部不可见.要访问它,您必须使用global关键字将其声明为全局.这称为范围.
<?php
$var = 4;
function echoVar() {
global $var;
echo $var;
}
echoVar();
Run Code Online (Sandbox Code Playgroud)
注意:这通常被认为是不好的做法.阅读本文以获取更多信息.
一个很好的选择是将变量作为参数传递:
<?php
$var = 4;
function echoVar($var) {
echo $var;
}
echoVar($var);
Run Code Online (Sandbox Code Playgroud)