创建全局变量的困惑

时间:2016-01-10 16:40:23

标签: php

如果$x$y全局变量没有在他们之前写过全局变量,那该怎么办?

<!DOCTYPE html>
<html>
<body>

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

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

addition();
echo $z;
?>

</body>
</html>

1 个答案:

答案 0 :(得分:1)

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

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

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