创建全局变量时的困惑


Confusion in creation of global variables

如果$x$y之前没有写入全局变量,那么它们如何成为全局变量?

<!DOCTYPE html>
<html>
<body>
<?php 
$x = 75;
$y = 25; 
function addition() {
     $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;
?>
</body>
</html>

因为它们是在全局命名空间中定义的。函数中声明的变量只能在该函数中使用。您可以使用在全局名称空间中查找变量的global运算符来否决此操作。

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

然而,$GLOBALS变量是存储所有全局变量的地方。由于您在该函数中定义了$z变量。