全局变量获得不同的值(网络/终端)

问题描述 投票:0回答:1

在学习php的过程中,我遇到了以下问题。 我不明白为什么当我运行以下代码时,我在本地站点和终端中得到不同的值:

function scopeTest(): int  
{  
    global $a;  
    return $a = 15;  
}  
  
scopeTest();  
echo $a;

航站楼:15
web:警告:未定义变量$a

当尝试通过函数更改全局变量时,我遇到了同样的问题。

$a = 1;
function scopeTest(): int
{
    global $a;
    return $a += 4;
}

scopeTest();
echo $a;

终端:5
网络:1

我用:

  • php:8.3
  • 本地服务器:php -S
php variables scope global
1个回答
0
投票

请尝试以下代码看看您会得到什么结果:

$a = 1;

function scopeTest()
{
    global $a;
    $a += 4;
}

scopeTest();
echo $a;

因为您将

$a
作为全局变量访问,所以无需在函数末尾返回值。使用全局变量的替代方法是:

$a = 1;

function scopeTest($a): int
{
    $a += 4;
    return $a;
}

$a = scopeTest($a);
echo $a;
© www.soinside.com 2019 - 2024. All rights reserved.