function test(&$a)
{
$a = $a + 3;
}
最初に変数を割り当てて呼び出すと、次のようになります。$ a = 3; test($ a); エコー$a; //出力6
しかし、私がこのテストを行う場合($ a = 3); エコー$a; //3を返します
何故ですか?2番目の関数呼び出しの参照変数も6に変更しませんか?
厳格な基準をオンにして、以下を確認してください。
変数のみを参照で渡す必要があります
2番目の例がまったく機能することを期待するべきではありません。PHPはそれを文書化していますが、それが行われているという事実は偶然のようです。
<?php
function test(&$a)
{
echo $a;
$a = $a + 3;
}
test($q = 3);
?>
これは を出力します3
。私はそこに少し驚いています。通常はtrue
as$q = 3
が成功し、true が返されることを期待していました。