在 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;
我是 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;