0
function test(&$a)
{
    $a = $a + 3;

}

最初に変数を割り当てて呼び出すと、次のようになります。$ a = 3; test($ a); エコー$a; //出力6

しかし、私がこのテストを行う場合($ a = 3); エコー$a; //3を返します

何故ですか?2番目の関数呼び出しの参照変数も6に変更しませんか?

4

2 に答える 2

1

厳格な基準をオンにして、以下を確認してください。

変数のみを参照で渡す必要があります

2番目の例がまったく機能することを期待するべきではありません。PHPはそれを文書化していますが、それが行われているという事実は偶然のようです。

于 2012-10-08T22:42:16.973 に答える
1
<?php
function test(&$a)
{
    echo $a;
    $a = $a + 3;
}

test($q = 3);
?>

これは を出力します3。私はそこに少し驚いています。通常はtrueas$q = 3が成功し、true が返されることを期待していました。

于 2012-10-08T22:46:49.510 に答える