PHP如何在数组中“全局变量”?

时间:2013-05-18 04:34:39

标签: php arrays global-variables

我的函数无法读取全局变量。有人知道我的代码下面有什么问题吗? 请帮帮我。

<?php
global $a = array(2,3,4); 
global $b = array(3,5,6); 

function test(){
        $y = $a[0]*$b[0];
        return $y;
}
test();
?>

4 个答案:

答案 0 :(得分:1)

<?php
$a = array(2,3,4); 
$b = array(3,5,6); 

function test(){
GLOBAL $a;
GLOBAL $b;
        $y = $a[0]*$b[0];
        return $y;
}
test();
?>

答案 1 :(得分:1)

似乎你对全局变量有一些误解。

你没有将变量声明为全局..而是告诉php你要使用不在函数范围内的变量

所以你的代码将是

<?php
  $a = array(2,3,4); 
  $b = array(3,5,6); 

function test()
{
    global $a, $b;
    $y = $a[0]*$b[0];
    // or you can use $GLOBAL['a'][0] * $GLOBAL['b'][0]
    return $y;
 }
echo test();
 ?>

现在使用此代码,您将使用在函数范围之外定义的变量$a$b

DOCUMENTATION

希望它可以帮助您和您理解我想说的话

答案 2 :(得分:0)

首先,您必须声明全局。

global $a;

然后你可以把它变成一个数组。

$a = array(2,3,4);

另外,如果您正在使用某项功能。在函数内部声明全局,而不是在函数之外。

<?php
$a = array(2,3,4); 
$b = array(3,5,6); 

$output = test($a,$b);
echo $output;

function test($array1,$array2)
{
$y = $array1[0]*$array2[0];
return $y;
}
?>

这是给你的解释。我们在哪里:

function test($array1,$array2)

我们说在调用函数时放在那些点上的任何值都被视为$ array1和$ array2 INSIDE函数。

所以当我们调用它时我们说test($ a,$ b)所以当函数运行$ array1 == $ a和$ array2 == $ b时。

在函数内部,变量$ a和$ b基本上变为$ array1和2.

返回值使函数调用基本上等于函数外部的返回值,以便:

$output = test($a,$b);

就像说:

$output = 6;

我希望有所帮助。

答案 3 :(得分:0)

使用 global 关键字在范围中包含变量。

以下是您提供的代码段的外观。

$a = array(2, 3, 4); 
$b = array(3, 5, 6); 

function test() {
    // include $a and $b in the scope of this function.
    global $a, $b;

    $y = $a[0] * $b[0];

    return $y;
}

访问上面提供的文档链接,查看global关键字的更多语法。

您还可以使用$GLOBALS数组访问ab

$y = $GLOBALS['a'][0] * $GLOBALS['b'][0];