PHP - 代入演算子

代入演算子

代入演算子の基本は "=" です。代入演算子は、左オペランドに右オペランドの式の値を設定します。つまり $a = 3 の値は 3 になります。

<?php
  $a = 5;       // $a には 5 が代入されます
  $b = 4;       // $b には 4 が代入されます
  $c = $a + $b; // $c には 9 が代入されます
?>
代入演算子の基本

基本の代入演算子に加えて、すべての演算子、配列結合、文字列演算子には複合演算子があります。これにより式の中の値を使用し、その値をその式の結果とすることができます。

<?php
  $a = 3;
  $a += 5;        // $a = $a + 5; と同じ
  
  $b = "Hello ";
  $b .= "There!"; // $b = $b . "There!"; と同じ
?>
複合演算子

算術代入演算子、ビット代入演算子、その他の代入演算子は、以下のとおりです。

$a += $b    // $a = $a + $b と同じ (加算)
$a -= $b    // $a = $a - $b と同じ (減算)
$a *= $b    // $a = $a * $b と同じ (乗算)
$a /= $b    // $a = $a / $b と同じ (除算)
$a %= $b    // $a = $a % $b と同じ (剰余)
算術代入演算子
$a &= $b    // $a = $a & $b と同じ (ビット積)
$a |= $b    // $a = $a | $b と同じ (ビット和)
$a ^= $b    // $a = $a ^ $b と同じ (排他的論理和)
$a <<= $b   // $a = $a << $b と同じ (左シフト)
$a >>= $b   // $a = $a >> $b と同じ (右シフト)
ビット代入演算子
$a .= $b    // $a = $a . $b と同じ (文字列の結合)
$a ??= $b   // $a = $a ?? $b と同じ (Null合体)
その他の代入演算子

代入は、元の変数を新しい変数にコピーするため、片方の変数に対する変更は、もう片方に影響を与えないということに注意してください。また、PHP では通常は値による代入になりますが、オブジェクトは参照で代入されます。オブジェクトを明示的にコピーするには clone キーワードを使います。

PHP では、参照による代入もサポートしており $var1 = &$var2; 構文で使うことができます。参照による代入は、両方の変数が同じデータを指すため、データのコピーは発生しません。

<?php
  $a = 3;
  $b = &$a;   // 参照による代入
  print "$a"; // 3
  print "$b"; // 3

  $a = 4;
  print "$a"; // 4
  print "$b"; // 4 ($b の参照先は $a)
?>
参照による代入

関連記事