php - 函数外的变量是全局变量吗?

标签 php variables global-variables global

<?php

$foo = 1;

function meh(){
  // <-- $foo can't be accessed
}

它看起来不像一个全局变量。但是,如果它在函数之外,它是否会像全局的东西那样有缺点?

最佳答案

在任何函数之外定义的所有变量都在全局范围内声明。如果你想访问一个全局变量,你有两个选择:

  1. 使用global关键字

    <?php
    $a = 1;
    $b = 2;
    
    function Sum()
    {
        global $a, $b;
    
        $b = $a + $b;
    }
    ?> 
    
  2. 或者使用$GLOBALS

    <?php
    $a = 1;
    $b = 2;
    
    function Sum()
    {
        $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
    } 
    ?>
    

    阅读更多信息 http://php.net/manual/en/language.variables.scope.php

关于php - 函数外的变量是全局变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6240600/

相关文章:

javascript - 为什么 var 允许重复声明而 const 和 let 不允许重复声明?

c++ - 通过使用(某种程度上)全局变量与静态函数变量来初始化值?

wolfram-mathematica - 列出所有全局变量

php - 捕获表单数据到邮件并显示其内容

php - 手动设置谷歌的 pubsubhubbub - 没有验证/提要结果失败

php - 谷歌客户端登录授权

java - 变量未显示在 Cat 日志中

php - 错误 : php55w-common conflicts with php-common on CentOS 6. 5

javascript - 带有内容的 div 可以有自己的特定变量吗?

java - 如果我不知道变量是否为正/负,如何在不调用函数或使用 if 的情况下使其为正?