我正在尝试访问变量 - 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;
答案 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函数中尝试添加。
错误=类型在第二个函数中不匹配!