我无法访问全局变量

时间:2013-09-20 16:59:30

标签: php global-variables

我正在尝试访问变量 - globals:

下一个代码对我有用:

$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;

2 个答案:

答案 0 :(得分:3)

这是因为您正在尝试对array和数字进行求和: 这是有效的:

<?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']) ; 
    }

答案 1 :(得分:1)

在你的第二个例子中,你正在使用php“range”: http://php.net/manual/en/function.range.php

将返回一个数组,然后你在Sum函数中尝试添加。

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