0

関数でグローバル変数を読み取ることができません。以下の私のコードの何が問題なのか知っている人はいますか? 私を助けてください。

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

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

4 に答える 4

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();
?>
于 2013-05-18T04:36:50.323 に答える
0

まず、グローバルを宣言する必要があります。

global $a;

次に、それを配列にすることができます。

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

また、関数を使用している場合。関数の外側ではなく、関数の内側で global を宣言します。

<?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 として扱われると言っています。

したがって、それを呼び出すときは test($a,$b) と言い、関数が $array1 == $a と $array2 == $b を実行するときです。

関数内では、変数 $a と $b は基本的に $array1 と 2 になります。

戻り値により、関数呼び出しは基本的に関数外の戻り値と同等になり、次のようになります。

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

まさに次のように言っています。

$output = 6;

それが役立つことを願っています。

于 2013-05-18T04:36:19.443 に答える
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配列を使用してaおよびにアクセスできますb

$y = $GLOBALS['a'][0] * $GLOBALS['b'][0];
于 2013-05-18T04:39:55.300 に答える