PHP
 Computer >> コンピューター >  >> プログラミング >> PHP

PHPの参照代入演算子(=&)を使って変数に参照を割り当てる方法

PHPでは、=&(参照代入演算子)を使うことで、新しい変数に別の変数への「参照」を割り当てることができます。参照を割り当てられた変数は、元の変数と同じ値を指すため、片方の値を変更すると、もう片方にもその変更が反映されます。

基本的な使い方

まず、次のような値を持つ変数を用意します。

$nextValue = 100;

続いて、新しい変数を作り、この変数への参照を割り当てます。

$currentValue = &$nextValue;

このように、参照を割り当てるには =&$変数名 の形式で記述します。変数名の前に付ける &(アンパサンド)がポイントです。

サンプルコード

実際の動作を確認できるPHPコードは以下の通りです。

<!DOCTYPE html>
<html>
<body>
<?php
    $nextValue = 100;
    $currentValue = &$nextValue;
    echo "Next Value=", $nextValue, "<br>";
    echo "Current Value=", $currentValue, "<br>";
    $nextValue = 45000;
    echo "nextの値を変更すると、=&によってcurrentにも変更が反映されます", "<br>";
    echo "Next Value=", $nextValue, "<br>";
    echo "Current Value=", $currentValue;
?>
</body>
</html>

実行結果

Next Value=100
Current Value=100
nextの値を変更すると、=&によってcurrentにも変更が反映されます
Next Value=45000
Current Value=45000

解説

上記の例では、$currentValue$nextValue への参照を持っています。そのため、後から $nextValue を 45000 に変更すると、$currentValue の値も自動的に 45000 になります。

これは、参照代入では値のコピーが作られるのではなく、両方の変数が同じメモリ上のデータを共有するためです。通常の代入(=)であれば、代入時点での値がコピーされるため、元の変数を変更しても影響はありません。参照代入演算子 =& を使うことで、このような連動した挙動を実現できます。

  1. C#の代入演算子の使い方を解説!全種類の一覧とサンプルコード

    C#で変数に値を格納するには、代入演算子を使用します。「=」のような基本的な演算子に加えて、四則演算やビット演算と代入を同時に行える複合代入演算子も用意されており、コードをより簡潔に記述できます。 C#の代入演算子一覧 C#で利用できる主な代入演算子は以下の通りです。 演算子説明使用例=単純代入演算子。右側の値を左側の変数に代入するC = A + B は A + B の計算結果を C に代入+=加算代入演算子。左オペランドに右オペランドを加算し、結果を左オペランドに代入するC += A は C = C + A と同等-=減算代入演算子。左オペランドから右オペランドを減算し、結果を左オペランドに

  2. Pythonで変数への参照(リファレンス)は作成できる?C/C++との違いを徹底解説

    はじめに:PythonとC/C++では「変数」の意味が違う Pythonにおける変数の概念は、CやC++とは根本的に異なります。C/C++では、変数とはメモリ上の特定の場所(アドレス)に付けられた名前のことです。そのため、ある変数の値を別の変数に代入しても、値が別のメモリ領域へコピーされるだけで、両者は互いに独立した存在となります。 int x = 5; int y = x; 例えばC++では、& 演算子を使うことで、宣言された変数のメモリアドレスを取得できます。 cout << x << &x << y << &y; こ