在 php 中使用 $GLOBALS

use of $GLOBALS in php

我是 php 的新手,所以我对 $_GLOBALS 了解不多。我希望这些用于在任何地方访问全局变量。所以,我的问题是函数 addition() 里面的问题是什么,为什么我不能这样做?我不能直接给变量z赋值吗?

    <?php 
    $x = 75; 
    $y = 25;

    function addition () { 
        $z = $GLOBALS['x'] + $GLOBALS['y']; 
    }

    addition(); 
    echo $z; 
    ?>

我收到以下错误:

Notice: Undefined variable: z in C:\xampp\htdocs\php\first.php on line 14

echo $z;

如果您从编程开始,我强烈建议您不要使用 GLOBALS。 有比全局变量更好的方法来获取 object/variable。例如dependency injection

函数是接受参数并用它们做一些事情和 return 值的东西。所以你可以创建加法函数

function addition ($x, $y) {
  return $x + $y;
}

调用时将 return $x 和 $y 的总和。当您拥有此值时,您可以使用 echo

将其输出给用户
echo addition(5, 4);

 $z = addition(5, 4);
 echo $z;

在您的情况下,您会收到通知,因为您想要获取未设置的变量。您可以检查变量是否设置为函数 isset($variable)

如果您仍想使用 $_GLOBALS,那么您需要知道 $_GLOBALS 是什么。它是全局范围内所有变量的引用,因此要使其工作,您应该编写类似

的内容
$x = 5;
$y = 7;

function addition() { 
    return  $GLOBALS['x'] + $GLOBALS['y']; 
}

echo addition();

但这是不好的做法,我最好不要这样做。

编辑:

也检查this link

$GLOBALS 是一个超全局变量,用于根据范围访问所有已定义的变量。 在上面的场景中 $z 是在 function 中定义的变量,因此它的范围仅限于 function 。 为了使其全局可访问,它应该在函数体外部声明,并且应该在函数体内声明为全局变量。

例子

$z=0;$x=20;$y=30;
function addition() { 
    global $z;
    $z = $GLOBALS['x'] + $GLOBALS['y']; 
}

addition(); 
echo $z;