如果$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
变量。