代入演算子

代入演算子の基本となるものは "=" です。 この演算子に関して最初に思い付く意味は、"等しい" であるかもしれません。 違います。 本当は、左オペランドに右オペランドの式の値を設定する ("得て代入する")ことを意味します。

代入式の値は、代入される値です。 つまり、"$a=3" の値は、3 です。 これにより、以下のようなトリッキーなことができるようになります。


 $a = ($b = 4) + 5; // $a は 9 に等しく、$b は 4 にセットされます。

全てのバイナリ演算子および文字列演算子に関して、 基本的な代入演算子に加えて "複合演算子" があります。 この演算子により、式の値を使用し、式の結果にその値をセットすることが できます。 例:


$a = 3;
$a += 5; // $a を 8 にセットします。$a = $a + 5; と同じです。
$b = "Hello ";
$b .= "There!"; //  $b を "Hello There!" にセットします。 $b = $b . "There!"; と同じです。

代入は、元の変数を新しい変数にコピーする(値による代入)ため、 片方の変数に対する変更はもう片方に影響を与えないということに注意して下さい。 この動作により、 密なループの内側で大きな配列のようなものをコピーする必要がある場合には 問題を生じる可能性があります。 PHP4 では、$var = &$othervar; 構文により 参照による代入をサポートしていますが、PHP3 ではサポートしません。 '参照による代入'は、両方の変数が同じデータを指し、コピーを行わないことを 意味します。