0

我正在尝试访问变量 - 全局变量:

下一个代码对我有用:

$a = 1;
$b = 2;
function Sum()
{
    $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'] ;
}
Sum();
echo $b;

这不起作用:

$a = 1;
$b = range(1, 500);
function Sum()
{
    $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'] ;
}
Sum();
echo $b;

有什么问题?

注意:我不想使用:global $a; global $b;

4

2 回答 2

3

这是因为您正在尝试进行 SUM ofarray和 number :这是有效的:

<?php
$a = 1;
$b = range(1, 500);

function Sum()
{
    $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'][0] ;//0 or any index
}
Sum();
echo $b;
?>

如果你想添加$a数组的总和,$b 那么使用array_sum()这样的:

   function Sum()
    {
        $GLOBALS['b'] = $GLOBALS['a'] + array_sum($GLOBALS['b']) ; 
    }
于 2013-09-20T17:03:45.327 回答
1

在您的第二个示例中,您使用的是 php“范围”: http: //php.net/manual/en/function.range.php

这将返回一个数组,然后您尝试在 Sum 函数中进行加法。

错误 = 第二个函数中的类型不匹配!

于 2013-09-20T17:13:27.547 回答