关于全局变量和局部变量的问题

<?php
$var = "content1";
function fn()
{
    echo "inside the function, \$var = " . $var . "<br/>";
    $var = "content2";
    echo "inside the function, \$var = " . $var . "<br/>"; 
}   
fn();
echo $var;
?>

这边有个疑问, 上面最开始一行 定义了 $var 那在函数的第一句 echo 中 为什么无法输出$var="content1" 的结果?

还有一个问题

<?php
$var = "content1";
function fn()
{
    $var ="helloWorld";
    global $var;
    echo "inside the function, \$var = " . $var . "<br/>";

}

fn();

echo $var;
?>

这边我开始定义了一个全局变量 $var ,然后在函数内部定义了一个 $var ,当使用global 函数的时候 ,为什么函数内部的echo输出的是 开始第一次定义的$var = "content1"; ,而不是$var ="helloWorld"; ?

阅读 2.3k
1 个回答

首先global不是函数而是关键字

  1. php的全局函数,只有用global关键字声明后,在函数内部才能访问。

  2. 用global声明全局变量,如果存在同名的局部变量,局部变量会被覆盖掉

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题