更改 php 中的全局变量值

changing a global variable value in php

我正在学习 php,但我只是对 w3schools 的一些教授感到困惑!

<?php
$x = 5;
$y = 10;

function myTest() {
global $x, $y;
$y = $x + $y;
}

myTest();
echo $y; // outputs 15
?>

在这段代码中,它表示输出将为 15,因为我们在 myTest 函数中获得了 "y" 变量值!但是 php 如何知道 $y = $x + $y; 中的 "y" 变量是全局变量还是新变量?!

$ymyTest() 函数中的全局函数,正如您声明的那样:

global $x, $y;

所以里面 myTest() :

global $x, $y;//$x=5 and $y=10
$y = $x+$y; // value of $y will be over written by (10+5) and it will become 15

只是为了更清楚你的困惑:

function myTest() {
   $y = 200; //local $y
   echo $y; //200
   global $x, $y;//now global $y will overwrite local $y
   $y = $x + $y;
   echo $y; //15
}

全局$y$y = $x + $y产生的$y是同一个变量。 global 没有定义不同的变量,它定义了变量的 'scope' ,即它可以在脚本中访问的位置。所以$y = $x + $y改变了全局变量的值。

例如,如果您像这样重写函数:

function myTest() {
    $x, $y;
}

$x$y 将与之前定义的变量不同,因为您没有将它们定义为全局变量。